動詞ルートを提供する場合、RouteSet
はコントローラー/アクションおよびヘルパー メソッド名に関して最適な推測を行います。一致するパスに少なくとも 2 つのセグメントが必要です。それ以外の場合は、コントローラー、アクション、およびヘルパーの名前を自分で指定する必要があります。
単一のセグメント マッチャー (パスにスラッシュがない) の場合、完全な定義が必要です。
# Looks for FooController#index and provides foo_path/foo_url
get 'foo', :to => 'foo#index', :as => :foo
2 つ以上のセグメントを持つマッチャーの場合、次の構文が想定されます。
# 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'
注意すべきことの 1 つは、パス ヘルパー名に関して、この動作がリソース マッチャーと異なることです。この構文を使用すると namespace_controller_action が提供され、リソースと名前空間を使用すると action_namespace_controller が提供されます。これは、2 つの形式の間の混乱の一部である可能性があります。
たとえば、すでにタイム トラック リソースがある場合は、次のように追加します。
# 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