# Problema con combo box

**URL:** <https://www.ruby-forum.com/t/problema-con-combo-box/175192>\
**Category:** IT\
**Created:** [September 9, 2009, 1:04pm UTC](https://www.ruby-forum.com/t/problema-con-combo-box/175192 "2009-09-09T13:04:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![atd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dc4da7/32.png) [@atd](https://www.ruby-forum.com/u/atd)\
**Post date:** [September 9, 2009, 1:04pm UTC](https://www.ruby-forum.com/t/problema-con-combo-box/175192/1 "2009-09-09T13:04:32Z")

</div>

Ciao a tutti!  
Ho cercato di trovare la soluzione al mio problema ma non sono riuscita  
a trovarla.  
Il problema Ã¨ il seguente:

ho una tabella nella quella sono memorizzate una lista di strutture.  
La tabella in questione si chiama “structures”.

Ho un controller che si chiama netcodes, nel quale, viene memorizzato il  
nome della struttura.  
Mi piacerebbe che sia nella creazione di una nuova netcodes e sia  
nell’eventuale modifica, potessi avere un combo che punta alla tabella  
structures e dalla quale prendo i dati.

Questo giochino (almeno per la creazione ex-novo di una netcodes) sono  
riuscito a farlo inserendo nel netcodes\_helper il seguente codice:

module NetcodesHelper

def structure\_name\_form\_column(record, input\_name)  
structures = Structure.find(:all, :order =\> “denomination”).map{|x|  
[x.denomination]}

```
select_tag input_name, options_for_select(structures)

```

end  
end

Il gioco funziona perfettamente se inserisco una nuova netcodes, ma se  
voglio fare un edit di una netcodes giÃ esistente, mi presenta la lista  
delle strutture nel combo anche se a ma piacerebbe che il valore del  
combo sia quello che cerco di modificare dalla netcodes.  
Invece mi presenta sempre il primo elemento del combo e se non sto  
attento, se faccio delle altre variazioni in altri campi della netcodes,  
rischio di memorizzare un valore nel campo struttura diverso da quello  
che ho nella netcodes che sto editando ( mi si posiziona sempre il  
primo).

La mia domanda Ã¨ questa ( e sono sicuro che c’Ã¨ la soluzione)\>:

Ã¨ possibile fare in modo che il combo corripondente alla struttura che  
vado ad editare mi presenti esattamente il valore che ho nella netcodes  
di partenza?

Spero essere stato chiaro.  
Grazie a tutti coloro che possano darmi un aiuto.  
Ciao Antonio

---

<div class="post-metadata">

**Author:** ![atd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dc4da7/32.png) [@atd](https://www.ruby-forum.com/u/atd)\
**Post date:** [September 9, 2009, 1:32pm UTC](https://www.ruby-forum.com/t/problema-con-combo-box/175192/2 "2009-09-09T13:32:48Z")

</div>

Antonio Mugnani wrote:

> La mia domanda Ã¨ questa ( e sono sicuro che c’Ã¨ la soluzione)\>:
> 
> Ã¨ possibile fare in modo che il combo corripondente alla struttura che  
> vado ad editare mi presenti esattamente il valore che ho nella netcodes  
> di partenza?
> 
> Spero essere stato chiaro.  
> Grazie a tutti coloro che possano darmi un aiuto.  
> Ciao Antonio

nella form per la structure puoi usare un semplice select\_tag e  
valorizzarlo

@structures = Structure.find(:all)  
@selected\_structure = @structures[2]

select (“selected\_structure”, “id”, @structures.map {|u| [u.name,u.id]})

Ad esempio

(spero di aver capito qual’era la tua esigenza)

---

<div class="post-metadata">

**Author:** ![atd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dc4da7/32.png) [@atd](https://www.ruby-forum.com/u/atd)\
**Post date:** [September 9, 2009, 1:52pm UTC](https://www.ruby-forum.com/t/problema-con-combo-box/175192/3 "2009-09-09T13:52:21Z")

</div>

Alessandro S. wrote:

> Antonio Mugnani wrote:
> 
> > La mia domanda Ã¨ questa ( e sono sicuro che c’Ã¨ la soluzione)\>:
> > 
> > Ã¨ possibile fare in modo che il combo corripondente alla struttura che  
> > vado ad editare mi presenti esattamente il valore che ho nella netcodes  
> > di partenza?
> > 
> > Spero essere stato chiaro.  
> > Grazie a tutti coloro che possano darmi un aiuto.  
> > Ciao Antonio
> 
> nella form per la structure puoi usare un semplice select\_tag e  
> valorizzarlo
> 
> @structures = Structure.find(:all)  
> @selected\_structure = @structures[2]
> 
> select (“selected\_structure”, “id”, @structures.map {|u| [u.name,u.id]})
> 
> Ad esempio
> 
> (spero di aver capito qual’era la tua esigenza)

Grazie per la celere risposta ma mi sfugge qualcosa (non sono molto  
esperto anzi, per niente):

Questo codice devo metterlo all’interno dello stesso helper  
(netcodes\_helper) oppure nel controller (netcodes\_controller)?  
Cosa vuol dire questo : @structures[2]?  
Scusami se ti faccio tutte queste domande ma mi sto semplicemente  
incazzando!!!  
Grazie  
Antonio

---

<div class="post-metadata">

**Author:** ![atd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/dc4da7/32.png) [@atd](https://www.ruby-forum.com/u/atd)\
**Post date:** [September 9, 2009, 1:55pm UTC](https://www.ruby-forum.com/t/problema-con-combo-box/175192/4 "2009-09-09T13:55:36Z")

</div>

> > @structures = Structure.find(:all)  
> > @selected\_structure = @structures[2]
> > 
> > select (“selected\_structure”, “id”, @structures.map {|u| [u.name,u.id]})

> Questo codice devo metterlo all’interno dello stesso helper  
> (netcodes\_helper) oppure nel controller (netcodes\_controller)?  
> Cosa vuol dire questo : @structures[2]?  
> Scusami se ti faccio tutte queste domande ma mi sto semplicemente  
> incazzando!!!  
> Grazie  
> Antonio

queste le metti nel controller

@structures = Structure.find(:all)  
@selected\_structure = @structures[2] # seleziona un valore per fare un  
esempio se lo metti nil non seleziona nulla

questo va nella view/helper dentro la tua form

select (“selected\_structure”, “id”, @structures.map {|u| [u.name,u.id]})
