通过协会的新模型对象 [英] New model object through an association

查看:196
本文介绍了通过协会的新模型对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我认为这是可能创造通过关联一个新的模型对象?

 类订单<的ActiveRecord :: Base的
  belongs_to的:篮
结束

一流的花篮LT;的ActiveRecord :: Base的
  HAS_ONE:订单
结束

为了= Order.new()
篮= order.basket.new()#NoMethodError:未定义的方法`新'的零:NilClass
 

解决方案

有,但你的语法是一个小错误:

 类订单<的ActiveRecord :: Base的
  belongs_to的:篮
结束

一流的花篮LT;的ActiveRecord :: Base的
  HAS_ONE:订单
结束

为了= Order.new()
篮= order.create_basket()
 

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

I thought it was possible to create a new model object through an association?

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

解决方案

It is, but your syntax is a little wrong:

class Order < ActiveRecord::Base
  belongs_to :basket
end

class Basket < ActiveRecord::Base
  has_one :order
end

order = Order.new()
basket = order.create_basket()

Use build_basket if you don't want to save the basket immediately; if the relationship is has_many :baskets instead, use order.baskets.create() and order.baskets.build()

这篇关于通过协会的新模型对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆