Dove Rails ottiene il suo datetime per la creazione di record?

1

Ho un'app per rails con un modello di dati chiamato "jobs" e mi trovo di fronte a un cruciale crocevia di scelte di design.

Non ne so abbastanza di Rails e del suo funzionamento interno per poter dire con certezza quello che dovrei fare nonostante una lettura completa delle guide e dei documenti ruby.

Voglio essere in grado di visualizzare con precisione l'età di un record di lavoro in giorni. Quindi, quando un cliente effettua l'accesso, può vedere che il lavoro che hanno inviato è "x" giorni.

Da dove viene un'app di rotaie su Heroku con i suoi timestamp? Da Heroku? O l'orologio di sistema dei clienti?

Se un cliente ha un orologio di sistema scaduto e invia un lavoro, potrebbe davvero rovinare l'ordinamento della loro lista di lavoro, per non parlare di me supervisore dei record di lavoro.

Qualche consiglio là fuori?

EDIT: Giusto per essere chiari, non sto chiedendo come elencare i lavori in base alla loro data, ma a quale orologio fa un'app per rotaie su base Heroku sono i record.

    
posta gwapEs9 04.06.2014 - 02:43
fonte

1 risposta

1

Il metodo touch aggiorna il campo updated_at e salva il record. Guardando il suo codice sorgente possiamo vedere che prende il timestamp da current_time_from_proper_timezone . Guardando il suo codice sorgente possiamo vederlo utilizza un < a href="http://www.ruby-doc.org/core-2.1.1/Time.html#method-c-now"> Time.now per recuperare il tempo. Time.now è un alias per Time.new , che crea un oggetto Time che secondo la documentazione "è inizializzato con l'ora di sistema corrente se non viene fornito alcun argomento".

Poiché tutto ciò che viene eseguito sul server, utilizza l'ora locale del server. Quindi, se non si utilizza JavaScript sulle macchine client per calcolare le durate, dovrebbero essere accurate.

    
risposta data 04.06.2014 - 03:15
fonte

Leggi altre domande sui tag