我在Rails应用程序中有这种关系
class Folder
has_many :elements
end
class Element
belongs_to :folder
end
我的问题是这段代码不起作用
element = Element.first
a_folder.elements << element
element.save!
a_folder.save!
,但这个有效:
element.folder = a_folder
element.save!
任何人都可以告诉我为什么?
感谢。
答案 0 :(得分:8)
来自Rails documentation
将对象添加到集合中 (has_many或has_and_belongs_to_many) 自动保存该对象, 除非是父对象(所有者 (尚未存储) 在数据库中。
因此,如果已保存@folder
,则@folder.elements << @element
应该有效。
您还可以添加以下元素:
@folder.elements.create(...)