# Problema con partial e collection passata

**URL:** <https://www.ruby-forum.com/t/problema-con-partial-e-collection-passata/110209>\
**Category:** IT\
**Created:** [July 24, 2007, 8:15am UTC](https://www.ruby-forum.com/t/problema-con-partial-e-collection-passata/110209 "2007-07-24T08:15:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [July 24, 2007, 8:15am UTC](https://www.ruby-forum.com/t/problema-con-partial-e-collection-passata/110209/1 "2007-07-24T08:15:01Z")

</div>

Chiedo venia per l’oggetto poco esplicativo.

Ho il seguente parziale:

\<% fields\_for “item[]” do |item| %\>

- 
 \<%= truncate(cart\_items.description,60) %\> 

 \<%= item.text\_field('quantity', :size =\> '8') %\> 

 \<%= link\_to('RIMUOVI', :controller =\> 'cart', :action =\> 'remove\_from\_cart', :code =\> cart\_items.product.codice) %\> 
\<% end %\>

che chiamo da una view in questo modo:

\<% form\_for :cart, @cart, :url =\> { :action =\> ‘cart\_details’ } do  
|cart\_form| %\>

 \<%= render :partial =\> 'cart\_items', :collection =\> @cart\_items %\>

 \<%= submit\_tag("Aggiorna carrello") %\>
\<% end %\>

Originariamente, il parziale non esisteva ed era integrato nel form di  
cui sopra, opportunamente incapsulato in un “for @item in @cart\_items  
do…”.

A seguito dell’introduzione del parziale, ogni volta che accedo alla  
view incriminata, rails mi restituisce l’errore:

object[] naming but object param and @object var don’t exist or don’t  
respond to id\_before\_type\_cast: nil

Imputando lo stesso alla riga:

\<%= item.text\_field(‘quantity’, :size =\> ‘8’) %\>

Ho provato a risolvere da solo ma proprio non ne vengo a capo.

Dove sbaglio?

Ringrazio in anticipo per il Vs aiuto.

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [July 24, 2007, 8:39am UTC](https://www.ruby-forum.com/t/problema-con-partial-e-collection-passata/110209/2 "2007-07-24T08:39:06Z")

</div>

provo a risponderti

richiamare un partial con una collection ha l’effetto di richiamarlo una  
volta per ogni elemento della collection, ovvero con:

\<%= render :partial =\> ‘cart\_items’, :collection =\> @cart\_items %\>

\_cart\_items.rhtml viene richiamato per ciascun elemento di @cart\_items  
che viene messo a disposizione del partial nella variabile cart\_items

quindi:

Carmine M. wrote:

> \<% fields\_for “item[]” do |item| %\>

non hai un oggetto “item” e appena tenti di usarlo hai l’errore

> - 
> \<%= truncate(cart\_items.description,60) %\>

questa funziona!

> \<%= item.text\_field('quantity', :size =\> '8') %\> 
> 
> \<%= link\_to('RIMUOVI', :controller =\> 'cart', :action =\> 'remove\_from\_cart', :code =\> cart\_items.product.codice) %\> 
> \<% end %\>

prova cosi:

\<% fields\_for “cart\_items[]” do |item| %\>  
…

## ciao, Luca

Web: [http://spazidigitali.com](http://spazidigitali.com) - [http://thetyper.com](http://thetyper.com)  
Email mailto://removed\_email\_address@domain.invalid  
Skype callto://l.mearelli

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [July 24, 2007, 9:01am UTC](https://www.ruby-forum.com/t/problema-con-partial-e-collection-passata/110209/3 "2007-07-24T09:01:15Z")

</div>

Ciao Luca,

Luca M. wrote:

> richiamare un partial con una collection ha l’effetto di richiamarlo una  
> volta per ogni elemento della collection, ovvero con:

Si, il comportamento del partial con la collection mi Ã¨ chiaro

> quindi:
> 
> Carmine M. wrote:
> 
> > \<% fields\_for “item[]” do |item| %\>
> 
> non hai un oggetto “item” e appena tenti di usarlo hai l’errore

Ma l’oggetto “item” non viene definito da fields\_for (form builder)?

> > - 
> > \<%= truncate(cart\_items.description,60) %\>
> > 
> > questa funziona!
> > 
> > Si, infatti, l’errore mi viene segnalato sulla riga dove viene  
> > manipolata la quantitÃ .
> > 
> > > prova cosi:
> > > 
> > > \<% fields\_for “cart\_items[]” do |item| %\>
> > 
> > Ho giÃ provato cosÃ¬, purtroppo non vÃ nemmeno in questo modo 😑  
> > E’ pur vero che l’ho fatto di fretta prima di andare a lavoro.
> > 
> > Rifaccio un pÃ² di prove ed accodo al post.
> > 
> > Grazie per l’aiuto

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [July 24, 2007, 1:47pm UTC](https://www.ruby-forum.com/t/problema-con-partial-e-collection-passata/110209/4 "2007-07-24T13:47:23Z")

</div>

A quanto pare, ho risolto.

> > \<% fields\_for “cart\_items[]” do |item| %\>

Come giÃ accennato, con il codice esposto mi ritorna comunque errore.  
Per risolvere Ã¨ bastato scrivere:

\<% fields\_for “item[]”, cart\_items do |item| %\>

Il “cart\_items” Ã¨ quello che fornisce l’appoggio a fields\_for.  
A “cart\_items” viene passata la collezione omonima per mezzo di  
:collection nella chiamata al parziale.

Purtroppo per me, quello di aggiungere “cart\_items” alla chiamata a  
fields\_for Ã¨ stato piÃ¹ un tentativo disperato, che qualcosa dettato  
dalla conoscenza del framework. ☹
