私は以前にこのトピックに関連する質問もしましたが、その質問の助けを借りて、私が望んでいたものの名前を正確に見つけました:「<strong>バインドされたパラメーター」。
にメンバーを追加することで、「user /:id/dosomething」のようなルーティングを作成することができましたroutes.rb
。ただし、このタイプのURLは、私が探していた解決策ではありません。
私の質問は、パラメータとして送信されたアクションユーザーのdosomething
アクションと一致するように「user / dosomething /:id」をどのように提供するかです。id
これが私がアイデアを得るために読んだセクションです:
3.1バインドされたパラメータ
通常のルートを設定するときは、Railsが着信HTTPリクエストの一部にマップする一連のシンボルを提供します。これらのシンボルのうちの2つは特別です
:controller
。アプリケーション内の:action
コントローラーの名前にマップし、そのコントローラー内のアクションの名前にマップします。たとえば、次のルートについて考えてみます。get ':controller(/:action(/:id))'
の着信要求が
/photos/show/1
このルートによって処理される場合(ファイル内の以前のルートと一致していないため)、結果として、のshowアクションが呼び出さPhotosController
れ、最後のパラメーター"1"
がとして使用可能になりますparams[:id]
。とはオプションのパラメータであり、括弧で示されている/photos
ためPhotosController#index
、このルートはの着信要求もルーティングします。:action
:id