2012-11-27 4 views
0

RoR을 그냥 놀고 일부 모델링 방법을 찾으려고합니다.다형성 연관을 통한 쿼리

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

class Employee < ActiveRecord::Base 
     has_many :pictures, :as => :imageable 
end 

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

의 특정 사진에 의해 제품을 얻을 수있는 방법이 있나요 : , 아래의 코드를 마음하세요? 나는이 노력하고있어,하지만이 작동하지 않습니다 : 당신이 Picture@picture의 인스턴스가있는 경우

SQLite3::SQLException: no such column: products.picture: SELECT "products".* 
FROM "products" WHERE "products"."picture" IS NULL LIMIT 1``` 

답변

0

, 당신은 그것을 Product을 연관된 얻기 위해 belongs_to를 사용할 수 있습니다

picure = Picture.last 
product = Product.where(picture: picure) 

그것과 함께 실패 (Picture이 실제로 Product이 아닌 Employee이 아니라고 가정)

product = @picture.imageable 
+0

'product' 인스턴스가 없습니다. 필요한 것은 하나 뿐이지 만, 실제로'picture' 인스턴스에서 가져옵니다. 답변 해 주셔서 감사합니다. –

+0

그게 내 대답은 당신에게하는 방법을 보여줍니다; 'Picture' 인스턴스'@ picture'가 주어지면,'@ picture'에 대한'imageable' 연관은 연결된'Product' 인스턴스를 리턴합니다. – deefour

+0

오, 알 겠어.하지만 당신이 말하는 것은 속한거야? 다형성 또는 새로운 것? (이것으로도'종업원 '을 얻을 필요가 있습니다.) –

관련 문제