2010-09-28 11 views
5

Can Rails può analizzare automaticamente un datetime ricevuto dal campo di testo di un modulo?Can Rails può analizzare automaticamente datetime ricevuti dal modulo text_field

# in view 
<div class="field"> 
    <%= f.label :created_at %><br /> 
    <%= f.textfield :created_at %> 
</div> 

# in controller 
params[:product][:updated_at].yesterday 

Attualmente sto ottengo l'errore seguente:

undefined method `yesterday' for "2010-04-28 03:37:00 UTC":String 
+3

Si prega di mostrare il codice corrente. –

+0

+1 per la richiesta di @ ryan. Sarà difficile aiutarti senza alcun codice reale – marcgg

risposta

1

Se si sta mettendo che param in un modello direttamente, come i binari generatore di codice boilerplate fa, ActiveRecord si prende cura di questo per voi

def create 
    @product = Product.new(params[:product]) 
    @product.updated_at.yesterday #will succeed 
    #rest of method 
end 

Diverso da quello che si è bloccato con qualcosa di simile:

DateTime.parse(params[:product][:update_at]) 

o

DateTime.civil_from_format(:local, year, month, day, hour, minutes, seconds) 

Ma, nella mia esperienza .civil_from_format non funziona come ci si aspetterebbe con l'ora legale.

Problemi correlati