Forum: Italian Ruby user group non riesco a salvare un campo nel db

Ade19030f462462be502b3c76124fce0?d=identicon&s=25 Cluter Vipic (cluter)
on 2012-04-13 20:45
Salve,

e' da un po' che mi cimento con rails e finche' segui esempi ed esercizi
sembra di aver capito tutto bene fino a che non ti imbatti in qualcosa
di apparentemente semplice da risolvere non presente negli esercizi che
hai fatto ma che in rails con una nuova logica risulta qualcosa di
impossibile da risolvere

beh veniamo al problema

ho un form con form_for

per la registrazione di un utent @utente form ho un menu dynamico scelta
la provincia mi da i comuni relativi alla provincia

<%= form_for @utente do |f| %>

<%= f.label :provincia_id %>
<%= f.collection_select :provincia_id, Provincia.order(:nome), :id,
:nome,
{:prompt => true} %>

<%= f.label :comune_id %>
<%= f.grouped_collection_select :comune_id, Provincia.order(:nome),
:comune,
:nome, :id, :nome, {:prompt => true} %>

<% end %>

il file delle migration mi da

create_table "comune", :force => true do |t|
    t.string   "nome"
    t.integer  "provincia_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "provincia", :force => true do |t|
    t.string   "nome"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "utente", :force => true do |t|
    t.string   "provincia"
    t.string   "comune"
    t.integer  "provincia_id"
    t.integer  "comune_id"
    t.datetime "created_at"
    t.datetime "updated_at"
end

quando schiaccio il pulsante submit mi registra nella a tabella
'utentes' ID Provincia e lo ID
Comune e non il nome della Provincia e quello del Comune

Io ho 3 modelli

@utente, @provincia, @comune

class Provincia
    has_many :comune
end

class  Comune
    belongs_to :provincia
end

e nel model @utente ho:

belongs_to :provincia, :class_name => "Provincia", :foreign_key =>
"provincia_id"
belongs_to :comune, :class_name => "Comune", :foreign_key  =>
"comune_id"

PRIMA DI CONTINUARE LEGGI LA NOTA SEGUENTE

////////////////
NOTA: certo se scrivo le 2 righe di codice nel modello @utente pensavo
di scrivere

class Provincia
    has_many :utentes
end

class  Comune
    has_many :utentes
end

ma seguendo questa logica ottengo un errore quando carico il modulo del
tipo

'comune' method non definito relativo alla seguente riga

<%= f.grouped_collection_select :comune_id, Provincia.order(:nome),
:comune,
:nome, :id, :nome, {:prompt => true} %>

per tale ragione questa modifica logica nei modelli Provincia e Comune
non l'ho lasciata utilizzando il codice precedente il modulo carica
perfettamente

/////////////////

nella pagina di conferma del modulo ho quanto segue

<%= f.hidden_field(:utente, :provincia, :value =>
@utente.provincia.nome) %>
<%= f.hidden_field(:utente, :comune, :value => @utente.comune.nome) %>

in pratica registro in 2 campi nascosti i valori corrispondenti a
provincia_id e comune_id del campo nome nelle rispettive tabelle
provincia e comune

<%= h @utente.provincia.nome %>
<%= h @utente.comune.nome %>

e vedo correttamente nel sorgente della pagina

 <input id="utente_provincia" name="utente[provincia]" type="hidden"
value="ANCONA" />

<input id="utente_comune" name="utente[comune]" type="hidden"
value="AGUGLIANO" />
<p>
  <strong>Provincia:</strong>
  ANCONA
</p>

<p>
  <strong>Comune:</strong>
  AGUGLIANO
</p>

dopo che schiaccio il pulsante submit ho registrato correttamente il
record ma senza l;inserimento del nome della provincia "ANCONA"
e del comune "AGUGLIANO" ma soltanto dei campi provincia_id e comune_id
che sono degli interi gli altri rimangono vuoti

grazie in anticipo a chiunque abbia voglia di aiutarmi

C
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.