1
關於活動記錄一直困擾着我(我還是有點新的軌道)。我在做遷移,像這樣:反向關聯爲belongs_to - has_one
def up
change_table :slide do |t|
t.references => :slideable, :polymorphic => true
end
end
,然後我會因此修改我的模型:
class Slide < BaseModel
...
belongs_to :slideable, :polymorphic=>true
end
class Painting < BaseModel
...
has_one :slide, :as => :slideable
end
class Paper < BaseModel
...
has_one :slide, :as => :slideable
end
難道我還必須爲在繪畫和紙的HAS_ONE關係進行遷移爲了能夠使用協會的雙方?
slide.painting.name
slide.paper.title
painting.slide.name
paper.slide.name
所以我應該能夠使用上述協會的雙方? – tim 2013-04-23 23:22:20
不,具有多態關係,您不能引用'slide.painting'或'slide.paper'。你必須使用'slide.slideable',它將返回一個繪畫或紙張對象。然而'painting.slide'和'paper.slide'應該可以工作。你的Slide模型中還有一個拼寫錯誤,':polymorphic = true'應該是':polymorphic => true'。 – 2013-04-23 23:25:10
謝謝。還修正了錯字 – tim 2013-04-23 23:28:35