【问题标题】:Rails routes not matching 'new' pattern with RESTFul routesRails 路由与 RESTFul 路由不匹配“新”模式
【发布时间】:2013-04-02 06:25:27
【问题描述】:

我收到了这个错误:

No route matches {:action=>"show", :controller=>"video_publications", :campaign_id=[...]

有了这个网址:

/campaigns/514be3834413790249000025/video_publications/new

我在路线上有这个:

resources :campaigns do
   resources :video_publications
end

我在重定向到时遇到错误:

new_campaign_video_publication_path(@campaign)

我很困惑,有什么想法吗?

使用:

  • Rails 3.2.11
  • Mongoid 3.0.23

【问题讨论】:

  • 我已经在下面回答了,但是您可以在这里粘贴您的new.html.erb_form.html.erb 代码,以便查看。

标签: ruby-on-rails ruby-on-rails-3 rest mongoid url-routing


【解决方案1】:

错误不在您的new 路径中,而是在您的show 操作中。

它在抱怨:

:action=>"show", :controller=>"video_publications"

在您的代码中,将显示操作的部分代码更改为如下所示:

<%= link_to 'Show', campaign_video_publication_path(@campaign, @publication) %>

【讨论】:

  • 是的,就是这样!谢谢!有点混淆这个路由错误,你期待你的 routes.rb 不是你的视图代码的问题。
  • 是的,有点 :) 我很高兴它有帮助 :)
【解决方案2】:

在 routes.rb 中添加这行代码

match 'campaigns/:id/video_publications/new' => 'campaigns/video_publications/new',:as => :new_campaign_video_publication

【讨论】:

  • 这不会完成任何事情。路线首先被正确定义。此外,代码将无法正常工作,并且不建议使用匹配器
猜你喜欢
  • 2017-05-06
  • 2023-03-08
  • 2013-06-19
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多