ルートという名前のレールにコントローラー値をパラメーターとして含めることは可能ですか?実行時にこれを渡して、呼び出しを適切なコントローラーに転送できますか?
例:map.ride'ride'、:controller => {some-way-of-specifying-a-parameter}、:action =>'ride'
次に、実行時に、この呼び出しの対象となるコントローラー名を渡します。私のアクションは、呼び出しが送信されるコントローラーに応じて異なることを行っています。ありがとう
ルートという名前のレールにコントローラー値をパラメーターとして含めることは可能ですか?実行時にこれを渡して、呼び出しを適切なコントローラーに転送できますか?
例:map.ride'ride'、:controller => {some-way-of-specifying-a-parameter}、:action =>'ride'
次に、実行時に、この呼び出しの対象となるコントローラー名を渡します。私のアクションは、呼び出しが送信されるコントローラーに応じて異なることを行っています。ありがとう
トーマスの答えは正しいですが、URL 形式の柔軟性を高めたい場合は、複数のルートを指定し、それぞれを配置してルート要件を使用できます:requirements
。ルートは、要件が満たされている場合にのみ一致します。例えば:
map.resources :rides, :path_prefix => '/:option',
:requirements => { :option => /one/ }, :controller => 'one'
map.resources :rides, :path_prefix => '/:option',
:requirements => { :option => /two/ }, :controller => 'two'
その後:
/one/rides
に行きますOneController
/two/rides
に行きますTwoController
これはうまくいきます:
map.ride 'ride/:controller', :action => 'ride'
/ride/first
呼ぶだろうFirstController#ride
、そして/ride/second
呼ぶだろうSecondController#ride