我正在尝试创建一个启动页面。我找到了这篇文章,但我似乎无法为 before_filter 找到正确的语法。这是我所拥有的:
before_filter redirect_to root_path
(我将根路径更改为启动页面。)
但它会弹出这个错误:
Routing Error
undefined local variable or method `root_path' for ApplicationController:Class
知道我做错了什么吗?
我正在尝试创建一个启动页面。我找到了这篇文章,但我似乎无法为 before_filter 找到正确的语法。这是我所拥有的:
before_filter redirect_to root_path
(我将根路径更改为启动页面。)
但它会弹出这个错误:
Routing Error
undefined local variable or method `root_path' for ApplicationController:Class
知道我做错了什么吗?
澄清: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
rake routes
并确保root
已定义。
例如,您root :to => "home#index"
在 routes.rb 文件的底部。
用真实的控制器/动作替换 home#index