私はここで同様の質問をしました
今、私は最後の問題を抱えています。私が使う:
config.action_controller.session_store = :cookie_store
と
ActionController::Base.session = {
#:domain => :all,
:key => 'xxxxxxxx',
:secret => 'xxxxxxxxxxx...',
:expire_after => 5.minutes
}
これは正常に機能し、実際には5分間非アクティブな状態でCookieを設定します。私が今やろうとしているのは、ログインする前のユーザーがクリックを覚えているときに、タイムアウト値を長くしたいということです。
これは私が使用するログインアクションです:
session_user = User.authenticate(params[:user][:email], params[:user][:password])
if session_user
session[:user] = session_user.id
@user=User.find(session[:user])
@user.update_attributes(:last_login_time => Time.now(),:is_logged => true)
@user.save
flash[:message] = "Login successful."
redirect_to "/admin"
#cookies[:userd] = {:value => session_user, :expires => Time.now + 12}
if params[:remember_me]
#base.request.session_options = request.session_options.dup
#base.request.session_options[:expire_after]= 10000.minutes
#base.request.session_options.freeze
#session[:expire_after] = 96000.seconds.from_now
#ActionController::Base.session_options[:expire_after] = 1.years
#session[:expires] = Time.now + 1
session[:expires_at] = 5.days
end
else
flash[:warning] = "Your email or password is incorrect. Please re-enter."
end
end
IF(ユーザーが[覚えておいてください]をクリックしたときに実行)でわかるように、私はさまざまなアプローチを試しましたが、ActionController :: Base.session_options [:expire_after] = 1.yearsを除いて、どれも機能しません。 [expire_after]変数を永続的にオーバーライドしているようです。
私は何をする必要がありますか?