2013-04-02 34 views
0

我得到這個錯誤模式:Rails的路線不符合 '新' REST風格的路線

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
+0

我在下面回答,但你可以粘貼你的'新.html.erb'和'_form.html.erb'代碼,只是爲了看到它。 – Aleks

回答

1

的錯誤不是在您的new路徑中,但在您的show操作中。

據抱怨:

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

在作秀動作的代碼的代碼改變部分是這樣的:

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

是的,就是這樣!謝謝!有點混淆這個路由錯誤,你正在期待你的routes.rb問題,而不是你的視圖代碼。 – Hartator

+0

是的,它有點:)我很高興它幫助:) – Aleks

0

加入這行代碼在routes.rb中

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

這不會完成任何事情。路線首先被正確定義。此外,代碼將無法正常工作,並且使用匹配器的havy是不可取的 – Aleks