我正在使用Devise来验证我的rails应用中的用户。我有几个资源,我只想访问经过身份验证的用户。如果未经身份验证的用户尝试访问此类资源,我希望他们返回登录页面。
我想知道这样做的最佳方法是什么。我在想:
我可以在application_controller.rb中添加一个检查 - 但是,如果我添加此检查,它也可能适用于登录页面,因此我们进入循环。 (输入登录页面 - >用户未登录 - >重定向登录页面...)
在每个控制器方法的基础上添加属性,例如。 @authenticated。
答案 0 :(得分:1)
您是否了解过authenticate_user!
过滤器?您可以在github找到文档(搜索“控制器过滤器和助手”)。
在相关控制器中添加此项。您可以将:only => [ :show ]
或:except => [ :index ]
作为其他参数,将其限制为某些操作。