我有这个工作然后几个月后回到我的应用程序现在它已经坏了。我确信它在某个地方是一个微妙的变化,或者我错过了一些明显的东西。
在我的应用程序控制器中,我有这个:
def after_sign_in_path_for(resource)
user_session["company_id"] = current_user.default_company_id
cookies[:login] = { :value => current_user.email, :expires => Time.now + 2.weeks}
dashboard_path
end
如果我稍后致电user_session["company_id"]
nil
(current_user.default_company_id
有效)。
如果我在调用user_session["company_id"] = current_user.default_company_id
之前的代码中设置user_session["company_id"]
以获取其有效的值。
答案 0 :(得分:1)
您可以在应用程序控制器中调用before_filter的方法中设置company_id,如下所示
before_filter :set_company_id
def set_company_id
session["company_id"] = session["company_id"] || current_user.default_company_id if current_user
end
在after_sign_in_path_for方法
中删除设置company_iddef after_sign_in_path_for(resource)
cookies[:login] = { :value => current_user.email, :expires => Time.now + 2.weeks}
dashboard_path
end