當提供一個動詞路線RouteSet
會做出最合理的猜測控制器/動作和輔助方法名。它在匹配路徑中至少需要2段,否則必須自己提供控制器,操作和幫助程序名稱。
對於單個段匹配器(路徑中沒有斜線),需要完整定義。
# Looks for FooController#index and provides foo_path/foo_url
get 'foo', :to => 'foo#index', :as => :foo
對於具有兩個或更多個片段它將假定下面的語法匹配。
# Looks for FooController#bar and provides foo_bar_path/foo_bar_url
get 'foo/bar'
# Looks for Baz::FooController#bar and provides baz_foo_bar_path/baz_foo_bar_url
get 'baz/foo/bar'
有一點需要注意的是,此行爲與資源匹配程序有關的路徑幫助程序名稱不同。使用這種語法提供了namespace_controller_action,其中使用資源和名稱空間提供了action_namespace_controller,這可能是兩種格式之間的一些混淆所在。
例如,如果你有時間的軌道資源已經那麼你將它添加像這樣:
# Provides /time_track/check_in as check_in_time_track_path mapping to TimeTrackController#check_in
resources :time_track do
collection do
get :check_in
end
end
是什麼'耙routes'說一下嗎? – slhck 2013-03-19 21:15:57
它應該是第二個,你會得到什麼錯誤? – Zippie 2013-03-19 21:22:46
我一定是犯了一個錯誤,@Zippie,你是對的。 @slhck,這有助於向我確認它是'time_track_check_in_path',所以我再次嘗試了它,並且它工作了......我一開始就輸錯了它...... – 2013-03-19 21:26:50