Rails路由与RESTFul路由不匹配“新”模式

时间:2013-04-02 06:25:27

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

我收到了这个错误:

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

2 个答案:

答案 0 :(得分:1)

错误不在new路径中,而在于show操作中。

抱怨:

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

在您的代码中,将show action的代码部分更改为以下内容:

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

答案 1 :(得分:0)

在routes.rb

中添加此行代码
match 'campaigns/:id/video_publications/new' => 'campaigns/video_publications/new',:as => :new_campaign_video_publication