# Accept\_nested\_attributes ma cosa manca?

**URL:** <https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706>\
**Category:** IT\
**Created:** [June 24, 2011, 11:23pm UTC](https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706 "2011-06-24T23:23:57Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [June 24, 2011, 11:23pm UTC](https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706/1 "2011-06-24T23:23:57Z")

</div>

class Shop \< ActiveRecord::Base  
has\_many :documents  
default\_scope :order =\> ‘updated\_at DESC’  
validates :name, :state, :presence =\> true  
accepts\_nested\_attributes\_for :documents

il form di shop e’:

= simple\_form\_for(@shop) do |shop\_f|  
= render ‘shared/error\_messages’, :object =\> @shop

= render :partial =\> ‘documents/form’, :locals =\> { :f =\> shop\_f }

= field\_set\_tag t(‘shop’) do  
.inputs  
= shop\_f.input :role\_number  
= shop\_f.input :role\_date, :as =\> :string, :input\_html =\> {  
:class =\> ‘id\_date’ }  
= shop\_f.input :name

il partial di documents/form e’:

= f.simple\_fields\_for :documents do |document\_f|  
= field\_set\_tag t(‘document’) do  
.inputs  
= document\_f.input :reference\_number  
= document\_f.input :reference\_date, :as =\> :string, :input\_html  
=\> { :class =\> ‘id\_date’ }  
= document\_f.input :subject

Nel controller di shop ho semplicemente:

def new  
@shop = Shop.new  
#@document = @shop.documents.build  
end

Il problema e’ che nel form non vedo i campi relativi a document a  
meno che non decommenti #@document = @shop.documents.build, pensavo  
non servisse dal momento che uso accept\_nested\_attributes\_for  
:documents.  
Se decommento #@document = @shop.documents.build nel form vedo i  
campi relativi a document e posso costruire il document anche se non  
uso accept\_nested\_attributes.  
Ma allora quest’ultimo a cosa serve.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [June 27, 2011, 3:59pm UTC](https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706/2 "2011-06-27T15:59:30Z")

</div>

On Fri, Jun 24, 2011 at 11:23 PM, Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> def new  
> @shop = Shop.new  
> #@document = @shop.documents.build  
> end

prova a passargli l’hash:

@shop = Shop.create(params[:shop])

Ciao  
Stefano

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [June 27, 2011, 4:11pm UTC](https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706/3 "2011-06-27T16:11:15Z")

</div>

On 27 June 2011 15:58, Stefano P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> @shop = Shop.create(params[:shop])

Come create, come create mica posso preparare il form.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [June 27, 2011, 4:16pm UTC](https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706/4 "2011-06-27T16:16:13Z")

</div>

On Mon, Jun 27, 2011 at 4:11 PM, Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Come create, come create mica posso preparare il form.

scusa avevo letto troppo velocemente e ho scritto una minchiata 🙂

quello che indichi il comportamento corretto. fields\_for itera sulla  
collezione che gli passi e crea i sub forms necessari. Peccato che con  
Shop.new .documents vuoto quindi ti tocca riempirlo in qualche modo.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [June 27, 2011, 4:16pm UTC](https://www.ruby-forum.com/t/accept-nested-attributes-ma-cosa-manca/208706/5 "2011-06-27T16:16:50Z")

</div>

On Mon, Jun 27, 2011 at 3:58 PM, Stefano P.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)wrote:

> @shop = Shop.create(params[:shop])
> 
> Ciao  
> Stefano

Scusa ho scritto una cazzata. Ho letto troppo velocemente 🙂

fields\_for itera su tutti gli elementi che trovi in quella collezione, e  
quando crei lo Shop vuoto lo
