Подтвердить что ты не робот

accepts_nested_attributes_for не работает должным образом для отношения has_one

У меня проблемы с accepts_nested_attributes_for в связи has_one.

Модели: купля-продажа.

class Purchase < ActiveRecord::Base 
  has_one :sale, :dependent => :destroy
  accepts_nested_attributes_for :sale
end

class Sale < ActiveRecord::Base  
  belongs_to :purchase
end

В контроллере/новое действие:

@purchase = Purchase.new(
  :club_id => @club.id,
  :subcategory_id => subcategory.id
)

В представлении (ХАМЛ):

- form_for(@purchase) do |f|
  # some fields for purchase
  - f.fields_for :sale do |s|
    = s.text_field :amount, :size => 6
    # and so on

ПРОБЛЕМА: это на самом деле не отображает какие-либо поля ввода для продажи на мой взгляд. Поля покупки отображаются нормально, но поля продажи не отображаются.

Если я добавлю эту строку в контроллер:

@purchase.sale.build

Я получаю эту ошибку:

неопределенный метод 'build' для nil: NilClass

Что еще более странно, если я изменю тип ассоциации на has_many вместо has_one, создавая таким образом:

class Purchase < ActiveRecord::Base 
  has_many :sales, :dependent => :destroy
  accepts_nested_attributes_for :sales
end

Все начинает работать просто отлично - поля продаж начинают появляться на мой взгляд, @purchase.sales.build не возвращает ошибку и так далее. Конечно, это не очень помогает мне, так как предполагается, что это has_many, а не has_one.

4b9b3361