Rails アプリを作成しているときに、他の複数のリソースのコンテキストでリソースにアクセスできるようにし、コンテキストに応じて少し異なる動作をさせたいという状況に最近遭遇しました。このようなものを処理する最良の方法は何ですか? 現在、複数の親リソース内にリソースをネストすることでこれを処理しています。しかし、これはやや面倒になってきており、これを行うためのより良い方法があるかどうかを知りたい.
例:
UserRights モデルがあり、ユーザーが個々のユーザーまたはユーザー グループ全体のいずれかのコンテキストでこれらの権限を表示、作成、および編集できるようにしたいとします。
resources :users do
resources :user_rights, context: :user # params[:context] = :user
end
resources :groups do
resources :user_rights, context: :group
end
これにより、ルートが生成されます。
users/:user_id/user_rights/:id
groups/:group_id/user_rights/:id
次に、コントローラーで、コンテキストに基づいて少し異なる処理を行います。
これにより、ユーザーがグループが持つすべての権限、またはユーザーが持つすべての権限を表示および編集できるクライアント側でかなり優れた UI を提供できます。これを行うより良い方法はありますか?