Active Record e valore posticcio

Buongiorno a tutti,
ho una tabella con l’inventario dei toner, con un campo che riporta la
data di utilizzo degli stessi.
L’idea è che se tale campo è NULL, il toner è ancora in magazzino.

Ora con RoR mi riesce difficile fare questo controllo/validazione.

Nella vista per l’Update, ho messo una CheckBox collegata alla variabile
membro (fittizia) available.

<%= check_box ‘toner’, ‘available’ %>Toner ancora in magazzino

E nel modello, ho inserito il seguente codice

def available
read_attribute(“used_on”) == ‘NULL’
end

def available=(val)
if (val == ‘1’)
write_attribute(“used__on”, ‘NULL’)
end
end

Ma non funziona, vale a dire che la funzione getter va bene, e mi rileva
quando nel db vado a settare a NULL la data, ma la funzione setter no:
la condizione dalla check box me la valuta giusta, ma sul db mi scrive
sempre la data impostata nei combo box automatici.

Come posso fare? il mio scopo alla fine è avere nell’interfaccia un
controllo per definire la data affiancato ad un checkbox per impostarla
a NULL (come in PhpMyAdmin, per intenderci…)

Grazie
saluti

c’è un doppio underscore nel nome

ti consiglio di usare la naming convention di rails

magari usando un metodo available? come getter e available! come setter

Il 03/09/07, Giuliano U. [email protected] ha scritto:

<%= check_box ‘toner’, ‘available’ %>Toner ancora in magazzino> > E nel


Sai cosa è successo oggi?
http://notizie.msn.it_______________________________________________
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


everything has got to end sometime we were satellites drifting off into
space
vega 4 - burn and fade away

Grazie per le risposte…

Il doppio underscore (in used__on) è un errore di copia+incolla.
Riguardo invece alla naming convention, non ho capito bene…
dovrei chiamare le funzioni così ?

def available?
read_attribute(“used_on”) == ‘NULL’
end

def available!=(val)
if (val == ‘1’)
write_attribute(“used__on”, ‘NULL’)
end
end

Ma a parte che la seconda ha un errore di sintassi che non riesco a
risolvere, quello che volevo era proprio una simil-variabile, ossia una
variabile posticcia Toner.available, che quando la leggo, va a
controllare la data, e quando la scrivo va ad impostarmi la stessa.
Il tutto per ‘fondersi’ con la form, la quale giustappunto va a
riferirsi alle variabili interne del modello, ad esempio ho

<%= text_area ‘toner’, ‘person’ %>

che si riferisce al campo ‘person’, sia in lettura che in scrittura.

Forse sbaglio proprio l’approccio, in VB.Net una cosa del genere è
possibile, e avevo capito che anche in Ruby lo fosse, forse però mi
perdo in Active Record… non so…