2012-11-19 5 views
1

사용자, 제품 및 사진 모델 간의 관계를 만들어야합니다. 사용자는 사진을 제품에 추가 할 수 있습니다. 따라서 사용자는 has_many 사진과 제품 has_many 사진, 각 사진 belongs_to 모두 제품과 사용자입니다. Rails에서 어떻게 이것을 할 수 있습니까? 아는 한 다형성 연관은 사진을 제품이나 사용자에게만 속하게합니다. 사용자 사진 및 제품 사진 관계에 대해 별도의 has_many_through 관계를 사용해야합니까?다형성 연관 및/또는 has_many_through

답변

2

동일한 모델 내에서 여러 개의 belongs_to 속성을 가질 수 있습니다. 본질적으로 belongs_to로 표시된 모델은 has_many로 표시된 모델에 외래 키를 보유합니다.

class MyModel < ActiveRecord::Base 

    belongs_to :other_model1 
    belongs_to :other_model2 

end 

당신이 언급 한 바와 같이 당신이 할 수있는 아래에 간단하게 has_many을 추가하여이 경우이 라인

class Photos < ActiveRecord::Base 
    belongs_to :imageable, :polymorphic => true 
end 

class Users < ActiveRecord::Base 
    has_many :photos, :as => :imageable 
end 

class Product < ActiveRecord::Base 
    has_many :photos, :as => :imageable 
end 

함께 당신이 관계를 만들 수 있다는 다형성 동료를 사용하려면

: phots을 :로 => : Photos 클래스를 다시 방문 할 필요없이 이미지 가능 속성.

+0

고마워요, 저의 혼란이 사라집니다. – graphmeter