Rails,Devise:如果匿名用户试图访问页面 - 将用户重定向到登录页面

时间:2012-04-29 00:15:11

标签: ruby-on-rails authentication devise

我正在使用Devise来验证我的rails应用中的用户。我有几个资源,我只想访问经过身份验证的用户。如果未经身份验证的用户尝试访问此类资源,我希望他们返回登录页面。

我想知道这样做的最佳方法是什么。我在想:

  • 我可以在application_controller.rb中添加一个检查 - 但是,如果我添加此检查,它也可能适用于登录页面,因此我们进入循环。 (输入登录页面 - >用户未登录 - >重定向登录页面...)

  • 在每个控制器方法的基础上添加属性,例如。 @authenticated。

1 个答案:

答案 0 :(得分:1)

您是否了解过authenticate_user!过滤器?您可以在github找到文档(搜索“控制器过滤器和助手”)。

在相关控制器中添加此项。您可以将:only => [ :show ]:except => [ :index ]作为其他参数,将其限制为某些操作。