# Form\_for con solo alcuni campi del modello

**URL:** <https://www.ruby-forum.com/t/form-for-con-solo-alcuni-campi-del-modello/153889>\
**Category:** IT\
**Created:** [November 22, 2008, 2:26pm UTC](https://www.ruby-forum.com/t/form-for-con-solo-alcuni-campi-del-modello/153889 "2008-11-22T14:26:53Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kerouak](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/6de8d8/32.png) [@kerouak](https://www.ruby-forum.com/u/kerouak)\
**Post date:** [November 22, 2008, 2:26pm UTC](https://www.ruby-forum.com/t/form-for-con-solo-alcuni-campi-del-modello/153889/1 "2008-11-22T14:26:53Z")

</div>

Ho una form che va a creare dei record del modello/tabella questions.

Il mio problema Ã¨ che un campo del modello viene settato da controller  
nell’azione NEW, e non tramite form. Quindi la validazione del modello  
mi da errore, perchÃ¨ dice che manca quel campo (quando passo all’azione  
CREATE).

In un form Ã¨ quindi obbligatorio inserire tutti i campi del modello ??

Grazie per l’attenzione.

---

<div class="post-metadata">

**Author:** ![kerouak](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/6de8d8/32.png) [@kerouak](https://www.ruby-forum.com/u/kerouak)\
**Post date:** [November 22, 2008, 3:04pm UTC](https://www.ruby-forum.com/t/form-for-con-solo-alcuni-campi-del-modello/153889/2 "2008-11-22T15:04:25Z")

</div>

> Il mio problema è che un campo del modello viene settato da controller  
> nell’azione NEW, e non tramite form. Quindi la validazione del modello  
> mi da errore, perchè dice che manca quel campo (quando passo all’azione  
> CREATE).

Se in create fai “User.new(params[:user])”, vengono settati solo gli  
attributi che arrivano dal form.  
Dovresti risettare quell’attributo anche in create.

---

<div class="post-metadata">

**Author:** ![kerouak](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/6de8d8/32.png) [@kerouak](https://www.ruby-forum.com/u/kerouak)\
**Post date:** [November 22, 2008, 3:23pm UTC](https://www.ruby-forum.com/t/form-for-con-solo-alcuni-campi-del-modello/153889/3 "2008-11-22T15:23:46Z")

</div>

> Il problema però è che in NEW uso (per impostare il campo):
> 
> @question.tipologia = params[:tipo]
> 
> ovvero il valore viene preso dal parametro :tipo con cui viene invocata  
> l’azione NEW; non posso fare la stessa cosa per l’azione CREATE, perchè  
> a quel punto essa non ha più a disposizione un parametro :tipo.

Metti un campo hidden nel form: \<%= f.hidden\_field :tipologia %\>  
In questo modo l’attributo viene inviato a create e non hai bisogno di  
reimpostarlo.

---

<div class="post-metadata">

**Author:** ![kerouak](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/6de8d8/32.png) [@kerouak](https://www.ruby-forum.com/u/kerouak)\
**Post date:** [November 22, 2008, 3:18pm UTC](https://www.ruby-forum.com/t/form-for-con-solo-alcuni-campi-del-modello/153889/4 "2008-11-22T15:18:34Z")

</div>

Andrea F. wrote:

> > Il mio problema ï¿½ che un campo del modello viene settato da controller  
> > nell’azione NEW, e non tramite form. Quindi la validazione del modello  
> > mi da errore, perchï¿½ dice che manca quel campo (quando passo all’azione  
> > CREATE).
> 
> Se in create fai “User.new(params[:user])”, vengono settati solo gli  
> attributi che arrivano dal form.  
> Dovresti risettare quell’attributo anche in create.

Il problema perÃ² Ã¨ che in NEW uso (per impostare il campo):

@question.tipologia = params[:tipo]

ovvero il valore viene preso dal parametro :tipo con cui viene invocata  
l’azione NEW; non posso fare la stessa cosa per l’azione CREATE, perchÃ¨  
a quel punto essa non ha piÃ¹ a disposizione un parametro :tipo.

Soluzioni a riguardo ??
