I我正在實施一個管理子域名,並用Google搜索來找到答案,但我還沒有找到另一個實例。對於新聞資源使用「news_path」不適用於無路由匹配{:action =>「show」,:controller =>「admin/news」}缺少必需的密鑰:[:id]'
我的路線是這樣的子域部分:
constraints :subdomain => 'admin' do
scope :module => "admin" do
resources :news, :events
match 'news', :to => 'news#index', :as => 'news'
root :to => "dashboard#index"
end
end
活動工作正常,但由於某些原因,以便新聞工作,我需要添加一個特定路由到與之相匹配的。它可以幫助顯示部分產生錯誤的位置(管理/共享/菜單):
<ul>
<li><%= link_to 'Home', root_path, :class => "#{current_class?(root_path)}" %></li>
<li><%= link_to 'News', news_path, :class => "#{current_class?(news_path)}" %></li>
<li><%= link_to 'Events', events_path, :class => "#{current_class?(events_path)}" %></li>
<div class="clearboth"></div>
</ul>
然後是錯誤,如果我是刪除了比賽路線:
No route matches {:action=>"show", :controller=>"admin/news"} missing required keys: [:id]
我只是不沒有線索爲什麼,有什麼想法?
「* news - > new *」並不完全正確;你有沒有聽過有人說過「一篇有趣的新文章」;-)?問題是,在「新聞」的情況下,* * *單數*和*複數是同一個詞。你不需要重新命名'News',只需要使用'news_index_path'而不是'news_path'(另見[我的回答](http://stackoverflow.com/a/27678933/660921)) 。 – Carpetsmoker 2014-12-28 17:44:01
感謝您的更新,對於其他誰知道他們可以使用它,如果需要的話很好。最後,我發現最好避免使用可能的複數問題來確保不僅我自己,而且項目中的其他人也不會嘗試使用類似的約定。有趣的是,文章變成了團隊和項目用戶羣的一個更優選的術語,所以這是一個方便的錯誤! – 2014-12-29 20:19:13
太好了,解決了我的生活;) – 2015-04-21 20:45:44