很多時候在Rails項目,我有一個「內容」控制器,裏面雜頁像關於我們頁面與我們聯繫頁面和介紹頁面等一切都需要路由命名嗎?
我平時做這樣的事情
match '/content/:action', :controller => 'content'
在routes.rb文件中,但我不知道如何在我的視圖中引用它。
引用它們的預期方法是什麼? 它是:
= link_to "Help", '/dashboard/help'
或者我需要爲每這些事情具名的路線?
很多時候在Rails項目,我有一個「內容」控制器,裏面雜頁像關於我們頁面與我們聯繫頁面和介紹頁面等一切都需要路由命名嗎?
我平時做這樣的事情
match '/content/:action', :controller => 'content'
在routes.rb文件中,但我不知道如何在我的視圖中引用它。
引用它們的預期方法是什麼? 它是:
= link_to "Help", '/dashboard/help'
或者我需要爲每這些事情具名的路線?
不,你不需要指定的路線,但它是慣例。你可以做下面還有:
<%= link_to "Help", {controller: 'dashboard', action: 'help' } %></li>
而且在路由文件,它看起來像:
match '/help', to: 'dashboard#help'
只要你以某種方式映射它,甚至做resources :dashboard
它會奏效。有一點額外的幫助,這裏是the guide on Routing in Rails。您也可以使用rake routes
命令列出的所有路由,它會列出像這樣的路線:
help /help(.:format) static_pages#help
about /about(.:format) static_pages#about
contact /contact(.:format) static_pages#contact
這意味着,在這種情況下,你可以使用help_path,about_path和contact_path。
很酷謝謝!所以{:controller =>'dashboard',:action =>'help'}仍然可以接受。 – leeroid
是的,你最好使用
:as => "dashboard_help"
,並在你的路由創建命名路由你必須
link_to "Help", :dashboard_help_path
這不適用於:在路徑之前,並且在Rails 3.2中,至少您並不需要指定as,做匹配'/ help',例如:'static_pages#help'例如會使help_path已經 – 8vius
您還可以享受本指南:http://guides.rubyonrails.org/routing.html –