1

小規模な予約サイトの構築。 users(ログインしてサイトで作業する人)があり、guestsにはroomsが割り当てられています。 usersguestsでもかまいませんが、すべてではありませんguestsusersです。Railsユーザモデルによる単一テーブル継承(STI)

私の最初の傾斜がuser & guestbelongs_to/has_one関係を設定することでしたが、多分STIは、ここに働くだろうか?ユーザーとして&ゲストはfirst_namelast_nameemailなどです。userguestの両方がpersonから継承されるようにモデルを設定するのは意味がありますか?

のみ追加フィールドuserが持っている可能性があるので、私は自分の単純な認証をロールバックされますがpassword_digestroles_maskicon_colorです。

提案がありますか?私は物事が認証、承認のまわりでトリッキーになる可能性があるので尋ねるだけです&その他。

アイデアやヒントをお見逃しなく!

+0

私はここで 'has_one'で行くと思います。 –

+0

私はユーザーとゲストのための実際の異なるモデルでDeviseに行きます –

答えて

0

ここで最も簡単なアプローチは、示唆したように、STIに固執することです。たとえば、単一のdeviseUserモデルを設定し、CanCanでACLを適用し、ユーザーの役割を定義することができます。

CanCanの能力仕様によって、アクセス可能なリソースとアクセスできないリソースが決定されます。ここでの利点は、ユーザーをゲストにすることができ、ACLのセットアップ方法によっては、ゲストにadminのようなアクセス権が与えられないようにすることができます。

しかし、2つの別々のDeviseモデルを使用するという提案は、セッションが別個であることを保証するため、良い考えです。これは、ユーザー固有のACLとゲスト固有のACLを適切に設定できるので、実装が簡単です。

https://github.com/ryanb/cancan

関連する問題