Form_for con solo alcuni campi del modello

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.

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.

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.

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 ??