相关疑难解决方法(0)

Ruby on Rails.如何在a:属于关系中使用Active Record .build方法?

我一直无法在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
Run Code Online (Sandbox Code Playgroud)

这将正确地保存带有外键的狗和标签.这似乎不适用于某种belongs_to关系.

d = Dog.new
d.person.build # => nil object on nil.build
Run Code Online (Sandbox Code Playgroud)

我也试过了

d = Dog.new
d.person = Person.new
d.save # => true
Run Code Online (Sandbox Code Playgroud)

Dog在这种情况下未设置外键,因为在保存时,新人没有id,因为它尚未保存.

我的问题是:

  1. 如何构建工作,以便Rails足够聪明,弄清楚如何以正确的顺序保存记录?

  2. 我怎样才能在belongs_to关系中做同样的事情?

  3. 我在哪里可以找到有关此方法的任何文档?

谢谢

activerecord ruby-on-rails foreign-keys

128
推荐指数
2
解决办法
12万
查看次数

标签 统计

activerecord ×1

foreign-keys ×1

ruby-on-rails ×1