通过关联的新模型对象

pin*_*ngu 7 activerecord ruby-on-rails associations

我认为可以通过关联创建一个新的模型对象.

class Order < ActiveRecord::Base
  belongs_to :basket
end

class Basket < ActiveRecord::Base
  has_one :order
end

order = Order.new()
basket = order.basket.new() # NoMethodError: undefined method `new' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

Cho*_*ett 27

它是,但你的语法有点错误:

class Order < ActiveRecord::Base
  belongs_to :basket
end

class Basket < ActiveRecord::Base
  has_one :order
end

order = Order.new()
basket = order.create_basket()
Run Code Online (Sandbox Code Playgroud)

使用build_basket,如果你不想立即保存篮筐; 如果是关系has_many :baskets,请使用order.baskets.create()order.baskets.build()