最佳答案
我无法在 Rails 中找到关于. build 方法的任何文档(我目前使用的是2.0.2)。
通过实验,似乎可以使用构建方法在保存记录之前将记录添加到 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
的关系?
我在哪里可以找到有关此方法的任何文档?
谢谢你