ser*_*erg 12 ruby authentication redirect before-filter ruby-on-rails-3
我想验证用户是否登录到服务器的每个请求.
就像是:
:before_filter verify_logged_in
Run Code Online (Sandbox Code Playgroud)
我应该在哪里放置before_filter,以便它适用于所有控制器操作和所有请求?
Dav*_*ahn 23
要确保过滤器适用于所有操作,请将其放在application_controller.rb中.
My *_*God 10
Application Controller是所有其他类的基类.
如果您在此类中放置任何过滤器,则流程的工作方式如下:
如果你点击url说users资源,任何行动说index行动,那么:
控件首先进入Application Controller.在那里它检查过滤器,如果找到任何,那么它执行过滤器方法,然后它转到用户控制器的索引操作.
应用控制器:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :verify_logged_in
end
Run Code Online (Sandbox Code Playgroud)
其他控制器:
class UsersController < ApplicationController
def index
end
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,您会看到另一个控制器继承了作为应用程序控制器的父控制器的内容.因此,如果您放入before_filter应用程序控制器,那么对于每个用户,它将验证用户是否已针对每个请求登录.
| 归档时间: |
|
| 查看次数: |
12416 次 |
| 最近记录: |