2012-01-29 21 views
0

に作用する二つのコントローラに行動を分離、学生役割を持つ私のユーザーは、オンライン予約を作成することができます。 私は予約をオフラインで作成するインストラクターロールを持つユーザーのための機能を追加しました。は、私が予約モデルを持っている単一のモデル

コントローラの動作新しいの作成は、これらの2つのフローではかなり異なります。関連するビューテンプレートには、いくつかの違いがあります。

私は、コントローラ内の役割の場合==インストラクターチェックを使用して検討し、私は両方を単一のコントローラとフローカバーできるように表示していました。しかし、私はそのアプローチが本当に好きではありません。


代わりに、offline_reservations用に別のコントローラとテンプレートを作成しました。 これはうまくいきましたが、両方のコントローラが同じ予約モデルを使用しているため、CanCanを使用してアクセスを制御する際に問題が発生していました。私は一つの他の変更を行うました

は、私は今、それが

/offline/reservations/new 

代わりの

/offline_reservations/new 

に位置しています 、名前空間に新しいコントローラを動かししかし、それならば、私はわかりません改善かどうか。

誰かがこのシナリオを処理するための最良の方法は何であるか助言することはできますか?

  1. 私は1つのモデルに対して2つの異なる動作セットを持っています。どのようにそれらを別々に保つのですか?私は本当に両方を1つのコントローラーに入れたいとは思っていませんが、それがベストならそれもそうです。

  2. 単一のモデルがありますので、私はカンカン私は、コントローラの各タイプへのアクセスを制限できるようにするために取得する必要がありますが、私は彼らの両方が同じモデルを使用しているので難しい

  3. がユーザであることを発見していますこの場合の名前空間のコントローラの良い/悪い。

+0

[カンカンを使用して認可の名前空間とネストされたコントローラ(http://stackoverflow.com/questions/12334367/authorizing-namespaced-and-nested-controllers-using-cancan)の可能重複 –

答えて

関連する問題