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…)
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…
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.