我一直无法在 Rails 中找到任何关于 .build 方法的文档(我目前使用的是 2.0.2)。
通过实验,您似乎可以使用 build 方法has_many
在保存任一记录之前将记录添加到关系中。
例如:
class Dog < ActiveRecord::Base
has_many :tags
belongs_to :person
end
class Person < ActiveRecord::Base
has_many :dogs
end
# rails c
d = Dog.new
d.tags.build(:number => "123456")
d.save # => true
这将使用外键正确保存狗和标签。这似乎在一段belongs_to
关系中不起作用。
d = Dog.new
d.person.build # => nil object on nil.build
我也试过
d = Dog.new
d.person = Person.new
d.save # => true
在这种情况下没有设置外键,Dog
因为在保存时,新人没有id,因为它还没有保存。
我的问题是:
构建是如何工作的,以便 Rails 足够聪明地弄清楚如何以正确的顺序保存记录?
我怎样才能在一段
belongs_to
关系中做同样的事情?我在哪里可以找到有关此方法的任何文档?
谢谢