在rails中有很多关系

时间:2010-07-07 12:55:48

标签: ruby-on-rails activerecord

我在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!

任何人都可以告诉我为什么?

感谢。

1 个答案:

答案 0 :(得分:8)

来自Rails documentation

  

将对象添加到集合中   (has_many或has_and_belongs_to_many)   自动保存该对象,   除非是父对象(所有者   (尚未存储)   在数据库中。

因此,如果已保存@folder,则@folder.elements << @element应该有效。

您还可以添加以下元素:

@folder.elements.create(...)