0

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

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

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

  • 在每个控制器方法的顶部添加一个属性,例如。@认证。

4

1 回答 1

1

你读过authenticate_user!过滤器吗?您可以在github上找到文档(搜索“Controller filters and helpers”)。

在相关控制器中添加它。您可以通过提供:only => [ :show ]:except => [ :index ]作为进一步参数将其限制为某些操作。

于 2012-04-29T00:23:29.237 回答