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
几个小时以来我一直在研究如何建立人际关系,我想我可能忽略了一些非常简单的事情......对于这个新问题感到抱歉,但我开始因沮丧而抓狂!
最佳答案
boosted_photos
表中应该有一个外键列。一般规则是我们将 belongs_to
关联放在具有外键的表模型中,这里是 BoostedPhoto
之后,以下应该可以工作,
photo = Photo.first
photo.boosts.create(title: 'testing')
关于ruby-on-rails - Rails关系一对多;无法构建子对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9859805/