有没有人在使用 current_page 时遇到过神秘的无法检测到的路线?在 Rails 3 中?即使使用完整生成的包含路由、视图和控制器的脚手架,我也会收到“无路由匹配”错误。
这是代码:
if current_page?(:controller => 'users', :action => "show")
如果我在 routes.rb 中添加“匹配”命令,它可以正常工作,但是如果资源已经创建,我为什么需要这样做呢?我错过了什么?
有没有人在使用 current_page 时遇到过神秘的无法检测到的路线?在 Rails 3 中?即使使用完整生成的包含路由、视图和控制器的脚手架,我也会收到“无路由匹配”错误。
这是代码:
if current_page?(:controller => 'users', :action => "show")
如果我在 routes.rb 中添加“匹配”命令,它可以正常工作,但是如果资源已经创建,我为什么需要这样做呢?我错过了什么?
如果只想测试当前控制器,可以执行以下操作:
if params[:controller] == 'users'
同样,如果您使用的是命名空间控制器,则可以使用斜杠将命名空间与控制器名称分开,例如:
if params[:controller] == 'advertising/users'
您缺少id
此帮助程序的参数:
current_page?(:controller => "users", :action => "show", :id => "1")
它希望您通过完整的路线。如果您不想要这个并且只想匹配控制器和操作,那么我建议您自己编写代码。
根据您的路线,要查找show
没有 ID 的通用操作,您可以查找例如!current_page?(:controller => "users", :action => "index")
.