如果他没有登录,我希望我的用户被重定向到登录表单?
问题是我不想为每一个动作做这件事.我知道有一种方法可以让我只为每个控制器定义一次(即无论我的控制器中的动作如何都会执行),但我不记得是怎么回事.
Sim*_*tti 48
使用before_filter.将以下内容放在应用程序控制器中.
# application_controller.rb
before_filter :require_login
private
def require_login
unless current_user
redirect_to login_url
end
end
Run Code Online (Sandbox Code Playgroud)
上面的代码假定您已经定义了一个方法current_user,该方法在用户登录时返回用户记录.
然后,在您的登录控制器中
skip_before_filter :require_login
Run Code Online (Sandbox Code Playgroud)
如果您希望仅在特定控制器上重定向登录,请使用:
skip_before_filter :require_login, :only=>[:edit,:update]
Run Code Online (Sandbox Code Playgroud)
或者:
skip_before_filter :require_login, :except=>[:new,:create]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19429 次 |
| 最近记录: |