# I need help

**URL:** <https://www.ruby-forum.com/t/i-need-help/160518>\
**Category:** IT\
**Created:** [February 17, 2009, 10:34am UTC](https://www.ruby-forum.com/t/i-need-help/160518 "2009-02-17T10:34:02Z")\
**Posts on this page:** 2\
**Page:** 1

<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:** [February 17, 2009, 10:34am UTC](https://www.ruby-forum.com/t/i-need-help/160518/1 "2009-02-17T10:34:02Z")

</div>

Avevo gia’ posto il problema ma sono in stand by da alcuni giorni.  
Purtroppo e’ solo da alcune settimane che sto facendo conoscenza con  
rails e molte cose mi sfuggono, soprattutto troppi concetti tutti  
assieme mi hanno mandato in confusione.  
Ho tre tabelle settori, categorie e utenti.  
Settori e categorie sono in relazione uno a molti, categorie e utenti  
molti a molti.  
Vorrei fare in modo che all’inserimento di un nuovo utente abbia la  
possibilita’ di selezionare un settore in base al quale mi viene  
fornita la lista delle relative categorie.  
Scelta la categoria o le categorie, viene creato il nuovo utente,  
oppure aggiornato, e gli viene assegnata la categoria o le categorie  
di appartenenza.  
Sono riuscito ad arrivare fino al punto in cui posso selezionare il  
settore e mi vengono mostrate le categorie di appartenenza ma e’  
codice fatto con i piedi, comunque:

nelle view di utente ho il partial dei campi del form relativi  
all’utente, es:

\<%= f.label :"nome e cognome" %\>  
 \<%= f.text\_field :nome %\>

\<%= f.label :note %\>  
 \<%= f.text\_area :notes %\>

\<%= render :partial =\> "sector\_categories" %\>

il partial sector\_categories contiene:

\<%= collection\_select "category", :sector\_id, @sectors, :id, :name, :prompt =\> "seleziona il settore" %\>

\<%= observe\_field :category\_sector\_id, :frequency =\> 2, :update =\> 'category\_container', :url =\> {:action =\> 'filter\_category\_in\_sector'}, :with =\> "'sector\_id='+value" %\>

l’action filter\_category\_in\_sector fa un  
@categories = Category.find\_all\_by\_sector\_id(params[:sector\_id])  
render :layout =\> false

Ovviamente per tale action devo avere una view, se ho capito bene come  
funziona rails, pertanto la view relativa all’action e’:  
filter\_categories\_in\_sector.html.erb e contiene:

\<% for category in @categories %\>  
\<%= check\_box\_tag “category”, category.id %\>  
\<%= category.name %\>  
\<% end %\>

e qui mi sono fermato.  
Non so come fare in modo di assegnare le categorie selezionate  
all’utente nel momento in cui ne viene creato uno nuovo oppure viene  
aggiornato uno esistente.  
Se c’e’ qualche anima buona per poterlo fare passo passo gliene sarei  
grato almeno posso superare questo stato di stand by.

---

<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:** [February 18, 2009, 10:59am UTC](https://www.ruby-forum.com/t/i-need-help/160518/2 "2009-02-18T10:59:58Z")

</div>

Vediamo se ho capito.

In div#category\_container ci va l’elenco delle categorie, che sono delle  
checkbox. L’utente dell’applicazione deve selezionarne una o piÃ¹ e poi  
cliccare il submit per creare l’utente.

Se le checkbox sono dentro al form, saranno inviate a rails anche loro  
insieme a tutti gli altri campi. Per verificarlo controlla il log, dove  
vedrai anche il loro nome in params[]. PerÃ² pare troppo semplice, forse  
c’Ã¨ qualcosa che mi sfugge.

Paolo

Msan M. wrote:

> Avevo gia’ posto il problema ma sono in stand by da alcuni giorni.  
> Purtroppo e’ solo da alcune settimane che sto facendo conoscenza con  
> rails e molte cose mi sfuggono, soprattutto troppi concetti tutti  
> assieme mi hanno mandato in confusione.  
> Ho tre tabelle settori, categorie e utenti.  
> Settori e categorie sono in relazione uno a molti, categorie e utenti  
> molti a molti.  
> Vorrei fare in modo che all’inserimento di un nuovo utente abbia la  
> possibilita’ di selezionare un settore in base al quale mi viene  
> fornita la lista delle relative categorie.  
> Scelta la categoria o le categorie, viene creato il nuovo utente,  
> oppure aggiornato, e gli viene assegnata la categoria o le categorie  
> di appartenenza.  
> Sono riuscito ad arrivare fino al punto in cui posso selezionare il  
> settore e mi vengono mostrate le categorie di appartenenza ma e’  
> codice fatto con i piedi, comunque:
> 
> nelle view di utente ho il partial dei campi del form relativi  
> all’utente, es:
> 
> \<%= f.label :"nome e cognome" %\>  
> \<%= f.text\_field :nome %\>
> 
> \<%= f.label :note %\>  
> \<%= f.text\_area :notes %\>
> 
> \<%= render :partial =\> "sector\_categories" %\>
> 
> il partial sector\_categories contiene:
> 
> \<%= collection\_select "category", :sector\_id, @sectors, :id, :name, :prompt =\> "seleziona il settore" %\>
> 
> \<%= observe\_field :category\_sector\_id, :frequency =\> 2, :update =\> 'category\_container', :url =\> {:action =\> 'filter\_category\_in\_sector'}, :with =\> "'sector\_id='+value" %\>
> 
> l’action filter\_category\_in\_sector fa un  
> @categories = Category.find\_all\_by\_sector\_id(params[:sector\_id])  
> render :layout =\> false
> 
> Ovviamente per tale action devo avere una view, se ho capito bene come  
> funziona rails, pertanto la view relativa all’action e’:  
> filter\_categories\_in\_sector.html.erb e contiene:
> 
> \<% for category in @categories %\>  
> \<%= check\_box\_tag “category”, category.id %\>  
> \<%= category.name %\>  
> \<% end %\>
> 
> e qui mi sono fermato.  
> Non so come fare in modo di assegnare le categorie selezionate  
> all’utente nel momento in cui ne viene creato uno nuovo oppure viene  
> aggiornato uno esistente.  
> Se c’e’ qualche anima buona per poterlo fare passo passo gliene sarei  
> grato almeno posso superare questo stato di stand by.
