2

2 つの異なるレイアウトを持つ Rails 3 アプリケーションがあります。1 つはエンド ユーザー用で、もう 1 つはアプリケーションを管理するための管理コンソールです。

1 つのレイアウトを使用するようにコントローラーを定義できるため、通常は非常に簡単に処理できます。エンド ユーザーが関与しないため、これはほとんどの設定で問題なく機能します。しかし、私のモデルのいくつかはそうします。たとえば、管理者がユーザー プロファイルを編集する場合とユーザーを編集する場合があります。これを機能させるには、モデルのコントローラーを複製する必要がありますか? 1 つは管理コンソール用で、もう 1 つはユーザー用ですか? DRYを窓から投げ捨てたようです。

フィードバックをお寄せいただきありがとうございます。

4

2 に答える 2

1

コードを複製する必要はありません。アプリケーションに認可レイヤーを追加するだけで、既存のコードでこれらの機能を作成できます。これを実現するには、CanCan gem をお勧めします。

CanCan は、特定のユーザーがアクセスできるリソースを制限する Ruby on Rails の承認ライブラリです。すべてのアクセス許可は 1 つの場所 (Ability クラス) で定義され、コントローラー、ビュー、およびデータベース クエリ間で複製されません。

もっと見ることができ、プロジェクト ページで例を確認できます。Railscastもあります。

于 2013-06-03T21:39:19.440 に答える