1

好的,所以我构建了这个应用程序一段时间,它是一个 rails 2.3.5 应用程序,我使用了这个语法

@user = User.new
@user.build_company

我完全忘记了这意味着什么以及如何转换为 rails 3 语法

class User < ActiveRecord::Base
  has_one :company

class Company < ActiveRecord::Base
   belongs_to :user

我隐约记得 rails 会使用 build_ 并做一些事情,但我不记得了,我似乎无法在任何地方找到文档

4

2 回答 2

2

.build_将创建一个关联类型(公司)的新对象,该对象链接到调用它的对象(用户),但尚未保存。AFAIK 这在 Rails 3 中没有改变。

请参阅此问题: Ruby on Rails。如何在 :belongs to 关系中使用 Active Record .build 方法?

它指向的文档:http: //api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

于 2012-07-26T17:57:17.893 回答
2

这是 Rails 3 的正确语法。

has_one 关系:

@parent.build_child

has_many 关系:

@parent.children.build
于 2012-07-26T17:58:34.867 回答