最近、Rails 3.2 アプリでセッションを検証するために Cookie を設定しようとしました。
Cookie は翌日の初めに期限切れになるはずだったので、この方法でユーザーに再度ログインを強制しました (必須)。
最初に、アプリのタイムゾーンを、処理する予定のタイムゾーンに変更しました。
config.time_zone = 'Caracas'
その後、次のようにCookieを作成しました。
cookies[:remember_token] = {value: user.remember_token,
expires: 1.day.from_now.beginning_of_day}
Cookie は問題なく作成されますが、有効期限が間違っています。Chromium では、日付は今日の午後 19 時 30 分に設定されています (ただし、マシンのタイムゾーンはアプリに合わせて設定されています)。
Cookie の定義を次のように変更すると、奇妙なことが起こります。
cookies[:remember_token] = {value: user.remember_token,
expires: 1.day.from_now}
クッキーを今日から 1 日だけに設定すると、有効期限は今からちょうど 24 時間に適切に設定されます。
begin_of_date が日付を正しく設定していない理由はありますか?
前もって感謝します