pab*_*orc 1 activerecord ruby-on-rails
我在Rails应用程序中有这种关系
class Folder
has_many :elements
end
class Element
belongs_to :folder
end
Run Code Online (Sandbox Code Playgroud)
我的问题是这段代码不起作用
element = Element.first
a_folder.elements << element
element.save!
a_folder.save!
Run Code Online (Sandbox Code Playgroud)
,但这个工作:
element.folder = a_folder
element.save!
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么?
谢谢.
从Rails 文档
将对象添加到集合(has_many或has_and_belongs_to_many)会自动保存该对象,除非父对象(集合的所有者)尚未存储在数据库中.
所以,如果@folder已经保存,那么@folder.elements << @element应该工作.
您还可以添加如下元素:
@folder.elements.create(...)
Run Code Online (Sandbox Code Playgroud)