Tengo problemas con accept_nested_attributes_for en una relación has_one.accept_nested_attributes_for no funciona adecuadamente para la relación has_one
Los modelos: Compra y venta.
class Purchase < ActiveRecord::Base
has_one :sale, :dependent => :destroy
accepts_nested_attributes_for :sale
end
class Sale < ActiveRecord::Base
belongs_to :purchase
end
En el controlador/nueva acción:
@purchase = Purchase.new(
:club_id => @club.id,
:subcategory_id => subcategory.id
)
En la vista (HAML):
- form_for(@purchase) do |f|
# some fields for purchase
- f.fields_for :sale do |s|
= s.text_field :amount, :size => 6
# and so on
PROBLEMA: esta realidad no hacen ningún cuadros de entrada a la venta en mi opinión . Los campos de compra son correctos, pero los campos de venta no aparecen.
Si añado esta línea al controlador:
@purchase.sale.build
consigo este error:
undefined method `build' for nil:NilClass
Para hacer las cosas más extrañas, si cambio el tipo de asociación a has_many en lugar de has_one, por lo tanto creando:
class Purchase < ActiveRecord::Base
has_many :sales, :dependent => :destroy
accepts_nested_attributes_for :sales
end
Todo comienza a funcionar bien - los campos de venta comienzan a aparecer en mi opinión, @ purchase.sales.build no devuelve un error, y así sucesivamente. Por supuesto, esto realmente no me ayuda, ya que se supone que es has_many, no has_one.
¿Alguien puede arrojar algo de luz sobre esta situación?
Muchas gracias !!! – adriandz