Form_for e select

Ciao.
Lo so che è un argomento dibattuto, ma non riesco a trovare il bandolo
della matassa.

Situazione: sto facendo un’applicazione in ror in cui degli operatori
andranno ad inserire dati (ma va?).
Gli operatori appartengono a 3 diversi sottoreparti, per cui fanno le
stesse cose, ma devo tenerli distinti per luogo di lavoro, quindi nella
creazione del profilo utente devo inserire il sottoreparto.
Per la gestione delle autenticazioni uso restful_authentication, quindi
ho aggiunto a app/views/users/new.html.erb il pezzo di codice necessario
allo scopo ed ora è così:

Sign up as a new user

<% @user.password = @user.password_confirmation = nil %>

<%= error_messages_for :user %>
<% form_for :user, :url => users_path do |f| -%>

<%= label_tag 'login' %>
<%= f.text_field :login %>

<%= label_tag 'name' %>
<%= f.text_field :name %>

<%= label_tag 'email' %>
<%= f.text_field :email %>

<%= label_tag 'subrep_id' %>

<%= f.select("subrep_id", Subrep.all.collect {|s| [ s.name, s.id ] }) %>

[codice codice]

<%= submit_tag 'Sign up' %>

<% end -%>

Ho provato anche con:
<%= f.collection_select(:subrep_id, Subrep.find(:all), :id, :name) %>

In entrambi i casi il codice html è:

Subrep

Gruppo 1 Gruppo 2 Gruppo 3

ma non mi funziona, l’errore:
Mysql::Error: Column ‘subrep_id’ cannot be null: INSERT INTO users
(name, salt, subrep_id, created_at, crypted_password,
remember_token_expires_at, updated_at, admin, remember_token,
login, email) VALUES(‘Nome C.’, ‘3535423rgfwefw53535’, NULL,
‘2009-10-16 12:19:07’, ‘fger435353gerger45345fwefwe’, NULL, ‘2009-10-16
12:19:07’, 0, NULL, ‘nomeutente’, ‘[email protected]’)

In pratica non vede il valore di subrep… cosa sto sbagliando?

Grazie in anticipo.

Daneel O. wrote:

Ciao.
Lo so che è un argomento dibattuto, ma non riesco a trovare il bandolo
della matassa.

Appena trovato: assolto in toto il form_for e “condannato”
restful_authentication :slight_smile:

In breve Restful_authentication ha una protezione per evitare strani
giochetti che impedisce di passare valori non previsti, si trova nel
model ed è:

attr_accessible :login, :email, :name, :password, :password_confirmation

Ho aggiunto alla fine il nuovo campo e tutto ha cominciato a funzionare
come volevo.

A presto :slight_smile:

Daneel O. wrote:

Daneel O. wrote:

Ciao.
Lo so che è un argomento dibattuto, ma non riesco a trovare il bandolo
della matassa.

Appena trovato: assolto in toto il form_for e “condannato”
restful_authentication :slight_smile:

In breve Restful_authentication ha una protezione per evitare strani
giochetti che impedisce di passare valori non previsti, si trova nel
model ed è:

attr_accessible :login, :email, :name, :password, :password_confirmation

Ho aggiunto alla fine il nuovo campo e tutto ha cominciato a funzionare
come volevo.

A presto :slight_smile:

In effetti anche a me ha fatto impazzire l’attributo :name.
Alla fine ho commentato le due righe di validazione in user.rb