2
class Photo < ActiveRecord::Base 
    has_many :boosts, class_name: BoostedPhoto 
    ... 
end 

class BoostedPhoto < ActiveRecord::Base 
    belongs_to :photo 
end 

這是我有它成立至今,但是當我嘗試這樣做在控制檯:鋼軌關係一對多;不能建立子對象?

photo = Photo.first 
photo.boosts.create(title: 'testing') 

我得到下面的結果

(0.3ms) begin transaction 
(0.1ms) rollback transaction 
ActiveRecord::UnknownAttributeError: unknown attribute: photo_id 

被仰視如何做幾個小時的關係,我想我可能會忽略一些非常簡單的事情......對於新問題感到抱歉,但是我開始把我的頭髮從挫敗中解脫出來!

+0

你有一個名爲photo_id'列'的' BoostedPhoto'?該列由軌道用來保存關聯。 – klump 2012-03-25 12:11:04

回答

2

boosted_photos表中應該有一個外鍵列。一般規則是我們把belongs_to的關聯,有外鍵的表的模式,在這裏它是BoostedPhoto

後,繼應該工作,

photo = Photo.first 
photo.boosts.create(title: 'testing') 
+0

對我很好。看起來photo.boosts.build(標題:'testing')也可以。謝謝。 – Daniel 2014-10-10 22:43:40