Je l'entrée suivante dans ma base de données:comportement de magasin de temps Odd ActiveRecord
t.time :my_time_stamp
Dans mon contrôleur je mettre à jour comme ceci:
model.update_attributes(:my_time_stamp => Time.now.utc)
je peux voir que j'écris:
Mon 9 November, 8:54.54 UTC 2009
Cependant, quand je lis plus tard cette valeur je reçois:
Sat Jan 01 08:54:54 UTC 2000
Il semble que la partie heure a été enregistrée mais pas la partie date. Je m'attendrais à cela parce que c'est un champ de temps, mais pourquoi est-ce que je finis par stocker et récupérer une date? Je suppose que je dois mal comprendre comment cela fonctionne d'une manière fondamentale ... qu'est-ce que je fais mal?
Ce que je dois faire est de calculer le temps en secondes depuis la mise à jour à la base de données .... y at-il un moyen plus facile de le faire?
Merci!
Je pensais cela, mais je suis confus. Ne renvoie pas time.now maintenant un 'time' qui est stocké dans le champ 'time: my_time_stamp', et quand je l'interroge plus tard avec model.my_time_stamp, ne devrais-je pas aussi avoir un temps ....? – cmaughan
Oui mais dans la base de données vous ne stockez que l'heure. Donc vous ne récupérez pas la date. –
oui, c'est mon point ... si je fais model.my_time_stamp alors pourquoi le 'type' de la valeur retournée est-il une date ....? Est-ce parce que la base de données stocke vraiment un objet datetime? Si dans la console rails je fais: model.update_attribute (: my_time_stamp, Time.now.utc), alors j'imprime model.my_time_stamp il ressemble à une date ..... – cmaughan