Новая модель объекта через ассоциацию - PullRequest
7 голосов
/ 29 сентября 2010

Я думал, что можно создать новый объект модели с помощью ассоциации.

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

1 Ответ

27 голосов
/ 29 сентября 2010

Да, но ваш синтаксис немного неправильный:

class Order < ActiveRecord::Base
  belongs_to :basket
end

class Basket < ActiveRecord::Base
  has_one :order
end

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

Используйте build_basket, если вы не хотите сразу сохранять корзину;если вместо этого has_many :baskets, используйте order.baskets.create() и order.baskets.build()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...