0

我有一个标准设计实现,并且在其他模型中,如果会话过期,似乎没有重定向,给用户留下错误消息。

例如,在用户个人资料页面上,如果未登录它只会显示错误,因为 current_user 不存在。

我是否在每个模型中设置了授权。或者更好的解决方案,我可以在应用程序控制器中设置它并在应用程序范围内进行设置,并在必要时简单地设置任何公共页面?

4

2 回答 2

0

如果您希望特定控制器检查用户是否已登录,那么您需要使用 Devise 的 authenticate_user!功能。请参阅下面的示例

class StuffController < ApplicationController
  before_filter :authenticate_user!
  def index
    ..... more implementation
  end
end

如果用户未登录,他们将被重定向到登录表单,然后在成功登录后重定向到所需页面

于 2013-02-07T13:53:07.477 回答
0

使用前置过滤器,例如before_filter :authenticate_user!. 将它放在您的应用程序控制器中。是一个设计助手,所以如果你想要自定义行为,你可以重载该方法或简单地使用他们的助手方法authenticate_user!编写自己的过滤器。user_signed_in?

于 2013-02-07T13:53:55.870 回答