私は複数のレベルの特権を持つサイトを書いています。私のシステムには基本的に3種類のユーザーがいます。それらは、管理者、ビジネス、および消費者(通常のユーザー)です。私が広告サイトを構築しているとしましょう。
そこで、Railsスキャフォールドが付属するRESTfulAPIを備えたモデル「キャンペーン」があります。企業はキャンペーンを作成でき、ユーザーは参加したいキャンペーンのみを表示でき、管理者はすべてを行うことができます。
これで、before_filterを適用して、特定のビューにアクセスできるユーザーのタイプを厳密に確認する方法がわかりました。
ただし、特権の各レベルには独自のビューがあります。
企業は、キャンペーンの洞察と分析を見ることができます。(このキャンペーン/分析と呼びましょう)消費者は参加したすべてのキャンペーンを見ることができます。(このキャンペーン/あなたと呼びましょう)そして管理者はサイトの活動を監視できる特別なビューを持っています。(これをcampaigns / monitor_businessesと呼びましょう)。
現在、私のCampaignControllerには、通常のRESTfulビュー+分析+あなたの+monitor_businessesがあります。もちろん、私は(キャンペーンだけでなく)複数のデータモデルを持っているので、これらのデータモデルのRESTfulコントローラーは非常に面倒になります。
私は何をすべきか?私は、ConsumerControllerを起動してからBusinessControllerを起動し、関連するすべてのビューをこれらのコントローラーに配置することを真剣に検討しています。これが「RESTful」の原則に違反しているかどうかはわかりませんが、問題に対処するためのより良いパターンが存在するかどうかを知りたいです。
私はあらゆる種類の提案を受け入れます。