在engineyard / nginx / passenger / rails 4.1.5的生产和登台中,在提交登录表单后,找到并验证了用户,但未使用user_id设置会话,因此应用程序重定向回会话#new因为没有current_user。在开发时,登录正常。它也适用于digitalocean / nginx / puma / rails 4.0.3。将expired_after更改为2.week仍然不起作用。但是当我删除:expire_after参数时,它在生产中工作正常。我们对这个问题感到困惑。什么会阻止会话因为在本地和不同生产环境中工作的参数而被存储?谢谢!
def create # Sessions_Controller
user = User.find_by(username: params[:username])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to payments_url
else
flash[:now] = "Invalid combination of email and password. Please try again!"
render 'new'
end
end
# session_store
App::Application.config.session_store :cookie_store, key: '_app_session', expire_after: 24.hours