【发布时间】:2013-04-01 02:57:03
【问题描述】:
我有一个路由文件夹
resources :groups
在我的GroupsController 这里有一些操作
def new
@group = Group.new
end
def update
end
def show
@groups = Group.find(params[:id])
end
当我运行 rake 路线时,我看到了
new_group GET /groups/new(.:format) groups#new
所以现在在我的html页面中
a.btn.btn-primary href="/groups/new"
有趣的是,每当我点击链接时,它就会告诉我
No route matches {:action=>"show", :controller=>"groups"}
实际上,我确实有一个 show 动作的路线匹配。我还检查并没有任何过滤器将我重定向到我的GroupsController 中的显示操作。我不知道为什么它会重定向我显示。出了什么问题,我该如何解决?我一定遗漏了一些明显的东西。
更新
如果我像这样从资源方法中删除显示操作
resources :groups, except: [:show]
然后它告诉我它找不到update 操作。
已解决
我发现在我的new.html 页面中有一个对group_path 的调用,而实际上它应该是groups_path
【问题讨论】:
-
与其自己编写路由,不如尝试使用
new_group辅助方法。所以代替这个:a.btn.btn-primary href="/groups/new"使用这个:a.btn.btn-primary href="#{new_group}"。 -
对不起,没有区别。仍然引导我进入路由错误页面。作为参考,它应该是
new_group_path或new_group_url。 -
抱歉,忘记了尾随的
_path:/ 这确实很奇怪...我会挖掘它,希望能回来提供一些有用的东西。 -
出于兴趣,您的
update操作有什么作用?是否有机会重定向到show? -
更新操作目前不执行任何操作。我用来自
GroupsController 的更多代码更新了我的问题。
标签: ruby-on-rails ruby-on-rails-3 hyperlink routing