before_filter与另一个控制器

时间:2011-01-13 02:40:59

标签: ruby-on-rails ruby before-filter

我正在尝试创建一个操作,如果用户已登录,将检查每个页面。 为此,我在控制器Home中创建了这个方法:

def check_session
  if !session[:user_id]
    redirect_to :action=> 'login'
  end
end

我已将此代码放在控制器的头部:

before_filter :check_session, :except => [:sub_layout, :authenticate, :login]

现在我想在check_session页面之外使用Home,请在Users页面中说明。在before_filter中调用不同控制器的方法的正确语法是什么?

1 个答案:

答案 0 :(得分:7)

如果您将已有的所有内容移至application_controller,它将检查您应用中的每个控制器。然后使用:skip_before_filter method绕过检查所需的控制器/操作。