I'm going crazy with a nester form.

class Shop < ActiveRecord::Base   has_many :documents   validates :name, :presence => true   accepts_nested_attributes_for :documents

class Document < ActiveRecord::Base   belongs_to :shop   validates :reference_number, :presence => true

The partial _form for shop is:

- @shop.documents.build = simple_form_for(@shop) do |shop_f|   = render 'shared/error_messages', :object => @shop

  = render :partial => 'documents/form', :locals => { :form => shop_f }

  = field_set_tag t('shop') do     .inputs       = shop_f.input :role_number       = shop_f.input :role_date       = shop_f.input :name

the partial _form for document is:

= form.simple_fields_for :documents do |document_f|   = field_set_tag t('document') do     .inputs       = document_f.input :reference_number

When I submit the form with no values in shop name or document reference_number I have the errors messages and it is correct but in the page I have the shop form with two document form. Why the two document forms? Sorry for my bad english hope my problem is clear.

class Shop < ActiveRecord::Base has_many :documents validates :name, :presence => true accepts_nested_attributes_for :documents

class Document < ActiveRecord::Base belongs_to :shop validates :reference_number, :presence => true

So your shop starts out as a brand new shop on in the new action, with 0 shops.

The new form gets rendered,

The partial _form for shop is:

- @shop.documents.build

the shop now has 1 document. You then submit the form, which creates a shop with one document, (albeit with errors). because there are errors, you render the form, and since the form unconditionally does @shop.documents.build, a second document is created. If I were you I'd be calling that in the controller, and only when desirable

Fred

Oh great, thank you very much I were going crazy. Yes I put @shop.document.build in the controller now.