私は以前にこのトピックに関連する質問もしましたが、その質問の助けを借りて、私が望んでいたものの名前を正確に見つけました:「<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