10

이 질문은 다형 관계의이라는 명명 형식에 관한 것입니다.다형성 관계의 이름을 잘 지정하십시오.

내 데이터베이스에는 '회사', 고객 및 직원이라는 세 가지 유형의 사람이 있습니다. 세 가지 각각은 작업, 이벤트 및 프로젝트와의 다형성 관계에 있습니다.

은 레일 가이드에 따르면,이은 (나는 간결에 대한 몇 가지 클래스를 생략 한)처럼 할 것 :

Person.rb 
has_many :tasks, :as => :taskable 
has_many :events, :as => :eventable 
has_many :projects, :as => :projectable # awkward names 

Task.rb 
belongs_to :taskable, :polymorphic => true 

These lead to the rather strange: 
@person = @task.taskable 

나는 다음과 같은 훨씬 더 문법 우아한 될 것이라고 느낌이 ... 것이다 그것은 그렇다면 공식 출처가 owner과 같은 단어가 아닌 projectable과 같은 단어를 사용하는 이유가 무엇입니까?

Person.rb 
has_many :tasks, :as => :owner 
has_many :events, :as => :owner 
has_many :projects, :as => :owner 

Task.rb 
belongs_to :owner, :polymorphic => true 

This creates the elegant: 
@person_1 = @task.owner 
@person_2 = @project.owner 
+1

연관에 대한 Rails 가이드를 확인했는데'belongs_to : taskable, : as : polymorphic'이 잘못되어'belongs_to : taskable, : polymorphic => true' 여야합니다. – jdoe

+0

@jdoe -이를 반영하도록 코드를 수정했습니다. 확인 해줘서 고마워. – sscirrus

답변

4

개인적으로 가능한 한 포괄적 인 것으로 만드십시오.

그래서 :as => :owner은 나에게 더 이해가됩니다.

의심의 경우에, 난 그냥 사용하는 거라고 이미 일부 프로젝트에서 본 적이

:as => :parent 

.

관련 문제