Capita nelle tabelle di inserire i campi altratabella_id, sarebbe
simpatico, se, nello scaffold, apparisse una select box contenente
title.
(Il post sul Relational Scaffolding si riferiva a questo?)
Io ho aggiunto in _form.rhtml questo
–
Lingua
– <%= select_tag ‘language_id’, options_for_select( @lan ) %>
–
E nel controller rispettivo, nell’azione new, ho scritto
– @languages = Language.find :all
– for lan in @languages do
– @lan = {lan.title => lan.id}
– end
Però mi restituisce l’ultimo elemento. Non riesco a fare in modo che si
formi la lista delle coppie chiave-valore.
Avevo provato a sostituire la riga @lan=… con
– @lan[lan.title]=lan.id
Ma poi mi restituisce l’errore relativo al fatto che l’oggetto è nil.
Scusate le mie banalità .
On 8/23/06, RobyOnRails [email protected] wrote:
Ma poi mi restituisce l’errore relativo al fatto che l’oggetto è nil.
Scusate le mie banalità.
Prova
così:- Controller:
@languages = Language.find_all
- View
<%= select ‘nome_del_tuo_oggetto’, ‘language_id’,
@languages.collect{|lang| [lang.name, lang.id]} %>
non l’ho testato ma dovrebbe andare…
-pilu
Pilu wrote:
non l’ho testato ma dovrebbe andare…
Funzionare, funziona! Però com’è possibile continuare ad utilizzare
tutti quei simpatici metodi del tipo validates_presence_of ecc… anche
in form “modificati” come questo?
Quando invio un form volutamente incompleto, ottengo quest’errore:
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.collect
come mai?
On 8/25/06, Andrea G. [email protected] wrote:
Pilu wrote:
non l’ho testato ma dovrebbe andare…
Funzionare, funziona! Però com’è possibile continuare ad utilizzare
tutti quei simpatici metodi del tipo validates_presence_of ecc… anche
in form “modificati” come questo?
in che senso? vuoi validare la scelta del linguaggio…nel modello
avrai un language_id…valida quello…
Quando invio un form volutamente incompleto, ottengo quest’errore:
Forse xkè devi aggiunger “@languages = Language.find_all” anche nel
metodo ‘create’…altrimenti non può visualizzare la lista di
linguaggi…