그래서 STI가 가장 부끄러운 일이라는 것을 알고 있지만 실제로 이해할 수 있다고 생각합니다. 내 애플 리케이션은 여러 종류의 XML 파일을 파싱하고있다. 모든 파일 모델은 똑같은 정보를 저장합니다. 연결된 사용자와 업로드 된 시간, S3에 저장된 위치에 대한 정보.STI의 의미는 무엇입니까? 우리는 모든 유형에 대해 동일한 정보를 저장하고 있지만 다르게 사용합니다.
xml 파일을 저장 한 다음 다양한 다른 모델을 만드는 데 사용하는 정보로 파싱합니다. 각 유형의 파일은 서로 다른 것을 생성합니다. 100 개 이상의 다른 유형의 xml 파일이있을 수는 있지만 가능한 많은 수의 파서를 작성하지는 않을 것입니다. 이 경우 STI가 의미가 있습니까?
모델의 단점은 모델이 모두 하나의 디렉토리에 있기 때문에 레일을 해킹하고 모델 디렉토리의 하위 디렉토리에 스틱을 두지 않는 한 해당 디렉토리가 넘쳐 흐를 것입니다.
다른 옵션은 kind 필드가 있고이 모든 것을 처리하는 lib 디렉토리에 뭔가를 넣는 것입니다. 아니면 resque, 어쩌면 모든 xml 파일 파서가 자신의 직업이어야합니다 사용하고 있습니다. 레일 콘솔에서 작업을 강제로하는 것은 어색하지만 그런 단점이 있습니다.
STI는 동일한 데이터가 있지만 데이터와 연결된 다른 동작이있을 때 가장 의미가 있습니다. 예를 들어 그 사람은 학생과 교사가 될 수 있습니다. 둘 다 비슷한 속성을 가지고 있지만 다르게 행동합니다. 100 가지 유형의 모델을 작성하는 것은 나에게별로 의미가 없습니다. 다시 생각해야 할 수도 있습니다. – rubish
당신은 아마이 대답을해야합니다, 나는 분명히 그것을 투표 할 것입니다. –
100 가지 모델이 극단적이지만 XML 파일은 최종 형식을 나타내며 매우 다른 데이터를 포함합니다. 서로 다른 유형의 양식을 사용하여 서로 다른 일을 수행하고 잘 정리할 수있는 방법이 필요합니다. STI가 아니라면 제안을 할 수 있습니다. – hadees