# Scaffold, aggiunta riferimenti a campi

**URL:** <https://www.ruby-forum.com/t/scaffold-aggiunta-riferimenti-a-campi/66137>\
**Category:** IT\
**Created:** [August 23, 2006, 4:11pm UTC](https://www.ruby-forum.com/t/scaffold-aggiunta-riferimenti-a-campi/66137 "2006-08-23T16:11:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![robyonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@robyonrails](https://www.ruby-forum.com/u/robyonrails)\
**Post date:** [August 23, 2006, 4:11pm UTC](https://www.ruby-forum.com/t/scaffold-aggiunta-riferimenti-a-campi/66137/1 "2006-08-23T16:11:51Z")

</div>

Capita nelle tabelle di inserire i campi altratabella\_id, sarebbe  
simpatico, se, nello scaffold, apparisse una select box contenente

title.

(Il post sul Relational Scaffolding si riferiva a questo?)

Io ho aggiunto in \_form.rhtml questo  
–

Lingua  
  
– \<%= select\_tag ‘language\_id’, options\_for\_select( @lan ) %\>  
–

E nel controller rispettivo, nell’azione new, ho scritto  
– @languages = Language.find :all  
– for lan in @languages do  
– @lan = {lan.title =\> lan.id}  
– end

PerÃ² mi restituisce l’ultimo elemento. Non riesco a fare in modo che si  
formi la lista delle coppie chiave-valore.  
Avevo provato a sostituire la riga @lan=… con  
– @lan[lan.title]=lan.id  
Ma poi mi restituisce l’errore relativo al fatto che l’oggetto Ã¨ nil.

Scusate le mie banalitÃ .

---

<div class="post-metadata">

**Author:** ![robyonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@robyonrails](https://www.ruby-forum.com/u/robyonrails)\
**Post date:** [August 23, 2006, 10:16pm UTC](https://www.ruby-forum.com/t/scaffold-aggiunta-riferimenti-a-campi/66137/2 "2006-08-23T22:16:30Z")

</div>

On 8/23/06, RobyOnRails [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Ma poi mi restituisce l’errore relativo al fatto che l’oggetto è nil.
> 
> Scusate le mie banalità.

Prova  
così:- Controller:  
@languages = Language.find\_all

- View  
\<%= select ‘nome\_del\_tuo\_oggetto’, ‘language\_id’,  
@languages.collect{|lang| [lang.name, lang.id]} %\>

non l’ho testato ma dovrebbe andare…

-pilu

---

<div class="post-metadata">

**Author:** ![robyonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@robyonrails](https://www.ruby-forum.com/u/robyonrails)\
**Post date:** [August 25, 2006, 12:20pm UTC](https://www.ruby-forum.com/t/scaffold-aggiunta-riferimenti-a-campi/66137/3 "2006-08-25T12:20:06Z")

</div>

Pilu wrote:

> non l’ho testato ma dovrebbe andare…

Funzionare, funziona! PerÃ² com’Ã¨ possibile continuare ad utilizzare  
tutti quei simpatici metodi del tipo validates\_presence\_of ecc… anche  
in form “modificati” come questo?

Quando invio un form volutamente incompleto, ottengo quest’errore:

You have a nil object when you didn’t expect it!  
You might have expected an instance of Array.  
The error occured while evaluating nil.collect

come mai?

---

<div class="post-metadata">

**Author:** ![robyonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@robyonrails](https://www.ruby-forum.com/u/robyonrails)\
**Post date:** [August 25, 2006, 6:09pm UTC](https://www.ruby-forum.com/t/scaffold-aggiunta-riferimenti-a-campi/66137/4 "2006-08-25T18:09:21Z")

</div>

On 8/25/06, Andrea G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Pilu wrote:
> 
> > non l’ho testato ma dovrebbe andare…
> 
> Funzionare, funziona! Però com’è possibile continuare ad utilizzare  
> tutti quei simpatici metodi del tipo validates\_presence\_of ecc… anche  
> in form “modificati” come questo?

in che senso? vuoi validare la scelta del linguaggio…nel modello  
avrai un language\_id…valida quello…

> Quando invio un form volutamente incompleto, ottengo quest’errore:

Forse xkè devi aggiunger “@languages = Language.find\_all” anche nel  
metodo ‘create’…altrimenti non può visualizzare la lista di  
linguaggi…
