# Active Record e valore posticcio

**URL:** <https://www.ruby-forum.com/t/active-record-e-valore-posticcio/113655>\
**Category:** IT\
**Created:** [September 3, 2007, 3:40pm UTC](https://www.ruby-forum.com/t/active-record-e-valore-posticcio/113655 "2007-09-03T15:40:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![keter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keter](https://www.ruby-forum.com/u/keter)\
**Post date:** [September 3, 2007, 3:40pm UTC](https://www.ruby-forum.com/t/active-record-e-valore-posticcio/113655/1 "2007-09-03T15:40:15Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![keter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keter](https://www.ruby-forum.com/u/keter)\
**Post date:** [September 3, 2007, 3:55pm UTC](https://www.ruby-forum.com/t/active-record-e-valore-posticcio/113655/2 "2007-09-03T15:55:39Z")

</div>

c’è un doppio underscore nel nome

---

<div class="post-metadata">

**Author:** ![keter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keter](https://www.ruby-forum.com/u/keter)\
**Post date:** [September 3, 2007, 4:17pm UTC](https://www.ruby-forum.com/t/active-record-e-valore-posticcio/113655/3 "2007-09-03T16:17:40Z")

</div>

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. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> \<%= check\_box ‘toner’, ‘available’ %\>Toner ancora in magazzino\> \> E nel
> 
> * * *
> 
> Sai cosa è successo oggi?  
> http://notizie.msn.it\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](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

---

<div class="post-metadata">

**Author:** ![keter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keter](https://www.ruby-forum.com/u/keter)\
**Post date:** [September 3, 2007, 4:55pm UTC](https://www.ruby-forum.com/t/active-record-e-valore-posticcio/113655/4 "2007-09-03T16:55:14Z")

</div>

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](http://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…
