簡體   English   中英

錯誤的Time.now輸出

[英]Wrong Time.now output

DB中有這樣的行(來自模式):

 t.datetime "password_link_sent_at"

回調:

 self.password_link_sent_at = Time.now

但輸出錯誤:

Started PUT "/email_password" for 127.0.0.1 at 2013-05-22 03:22:42 +0400
Processing by SignsController#email_password as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"10qxpSGYRAKs/SqbWyG2IstRxpIe4VoOT96hNANq9Tk=", "email_reset"=>"user_mail@mail.ru", "commit"=>"Reset Password"}
  User Load (6.0ms)  SELECT "users".* FROM "users" WHERE "users"."email" = 'user_mail@mail.ru' LIMIT 1
  User Exists (1.0ms)  SELECT 1 AS one FROM "users" WHERE "users"."password_reset_token" = '2kE2dtwlnsMrnCGTIGuCvQ' LIMIT 1
   (1.0ms)  BEGIN
   (1.0ms)  UPDATE "users" SET "password_reset_token" = '2kE2dtwlnsMrnCGTIGuCvQ', "password_link_sent_at" = '2013-05-21 23:22:43.167461', "updated_at" = '2013-05-21 23:22:43.175461' WHERE "users"."id" = 1
   (5.0ms)  COMMIT
  Rendered user_mailer/password_reset.text.erb (1.0ms)

注意請求時間,以及password_link_sent_at _link_sent_at本身,關於它的更新時間。 這是4個小時前的。

您可能在UTC中以數據庫存儲時間,這是一件好事。

日志設置為本地時間。

通常將時間存儲為UTC並轉換以用於顯示目的。 這使您的數據庫時區中立。

self.password_link_sent_at = Time.zone.now

看看這里的信息http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

我不確定這個,但更改您的應用程序時區設置可能會有所幫助:

在config / application.rb中

config.time_zone = 'Prague'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM