不确定before_filter的正确语法

时间:2012-04-12 02:51:07

标签: ruby-on-rails routes

我正在尝试创建启动页面。我找到了这个post,但我似乎无法为before_filter获得正确的语法。这就是我所拥有的:

 before_filter redirect_to root_path

(我将根路径更改为启动页面。)

但它突然出现了这个错误:

Routing Error

undefined local variable or method `root_path' for ApplicationController:Class

知道我做错了吗?

2 个答案:

答案 0 :(得分:3)

澄清:root_path作为实例方法存在,而不是在类设置期间作为类方法存在。因此需要块或方法调用来将调用或root_path推迟到调用的实际时间,而不是在加载类时。

由于某些原因,有人删除了正确的答案:将其移至块形式:

before_filter do
  redirect_to root_path
end

假设root_path指向:index,您可以:

before_filter(:except => :index) do
  redirect_to root_path
end

答案 1 :(得分:1)

rake routes并确保root已定义。

e.g。您在routes.rb文件的底部有root :to => "home#index"

将home #index替换为真实的控制器/动作