나는 Contributor
모델과 Resource
모델을 가지고 있습니다. 간단한 세계에서 나는 다음과 같은 설정을 가지고있을 것이다 :두 개의 has_many_through 관계가 동일한 모델
class Resource
has_many :authorships
has_many :contributors, through: :authorships
end
class Contributor
has_many :authorships
has_many :resources, through: :authorships
end
그러나 나의 요구 사항은 변경되었다. 제공자는 이제 자원 편집기 또는 자원 작성자가 될 수 있습니다. Contributor
은 한 자원의 Editor
이고 다른 자원의 Author
일 수 있습니다.
- 내
Authorships
결합 모델에is_editor?
속성의 어떤 종류를 추가하고 효과적으로 각 관계를 주석 : 그래서 내가이 요구 사항을 처리하는 방법은 두 가지가 보인다. 두 번째 참여 모델 만들기 -
Editorship
: 가장 현명한 방법은, 또는 내가 부족 다른 접근 방식이class Resource has_many :authorships has_many :editorships has_many :contributors, through: :authorships has_many :contributors, through: :editorships end class Contributor has_many :authorships has_many :editorships has_many :resources, through: :authorships has_many :resources, through: :editorships end
를?
첫 번째 경우는 Rails polymporphic association이 지원하지만 첫 번째 질문은 필자와 동시에 작성자이자 편집자 인 'Contributor'를 지원하고 싶습니까? –
'편집자'와 '저자'는 모두 동일합니다. 그들은 모든면에서 상호 교환이 가능합니다. 하위 클래스로 만들고 다형 관계를 잘못 설정하고 싶지는 않습니다. Join은 관계를 훨씬 더 명확하게 설명합니다. 또한 동일한 데이터가 작성자와 편집자로 표현되므로 많은 중복으로 끝납니다. – Undistraction
내 질문은 사람이 편집자가 될 수 있는지 여부와 같은 자원에 대한 저자. –