2

ユーザーにネストされたリソースがあります。

resources :users do
  resources :reservations
end

私のコントローラー アクションでは、controller.controller_name を使用して現在のコントローラー名を取得できます。したがって、user show アクションでは、controller.controller_name は「users」を返します。同様に、予約の表示アクションでは、「予約」が返されます。

しかし、「http://mywesite/users/:id/mutations」のようなネストされたリソース ルートの場合、ネストされたリソース (この場合は「users」) の親コントローラーを取得したいと考えています。コントローラーのプロパティまたはルート チェッカーを使用してこれを取得する方法はありますか? 私は自分のURLを正規表現するのが好きではありません。

params[:user_id] を確認できましたが、エラーが発生しやすいのでしょうか? :user_id を設定できる登録コントローラーがあるかもしれません。

この親リソースが必要な理由は、現在のアクションがユーザーと関係がある場合にのみレイアウトに検索フォームを作成したいからです。たとえば、ユーザー コントローラーまたはユーザーのネストされたリソース コントローラーで実行されるすべてのアクションです。 .

4

1 に答える 1

3

あなたの例ではhttp://mywesite/users/:id/mutationshttp://mywesite/users/:user_id/mutationsになります

params[:user_id].present? を確認できますか?

URL からの親リソースの取得を参照してください

于 2012-03-05T11:58:38.457 に答える