gpt4 book ai didi

ruby-on-rails - 'ActionView::Template::Error - 没有路由匹配'为 "old style"语句传递 'link_to' 参数

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:27 24 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 3.0.9,我遇到了这个问题:Trouble on setting the ':controller' parameter for a 'link_to' statement .没有人回答解决方案,但是,尝试并重新尝试找到并解决问题,我发现在传递“旧式”参数时(即使用 controlleraction 选项而不是命名路由路径)有时 link_to 不能按预期工作(也就是说,你会得到一个 ActionView::Template::Error - No route matches 错误,尽管如果你有正确说明的 Controller 和路线)。无论如何,您可以为此进行如下设置:

<%= link_to("New article", {:controller => '../', :action => 'new'}) %> # Note the "'../'"

而且有效。

我想知道何时为什么,一般来说,它会发生:controller 选项似乎“被迫”引用相对或绝对路径,而不是您传入的 Controller 参数。

也就是说,如果我设置 :controller => articles 并在 controllers/article/categories_controller.rb 管理的 View 文件中使用上面的代码,我得到以下错误:

`ActionView::Template::Error (No route matches {:controller=>"articles/categories/articles", :action=>"new"})`

因为,如上所述, Controller 似乎指的是 /articles/categories 路径而不是 /articles 路径(因为在这个例子中应该是,我将 Controller 设置为 articles)。会不会是路由器的问题?

最佳答案

“no route error”一般发生在routes.rb文件中没有提到正确的路由,与绝对/相对路径无关。

关于ruby-on-rails - 'ActionView::Template::Error - 没有路由匹配'为 "old style"语句传递 'link_to' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com