0

私は、多くのタイプのユーザーを対象とした Ruby on Rails アプリケーションに取り組んでいます。すべてのユーザーは、created_at と updated_at のタイムスタンプ フィールドと共に、電子メール アドレスとパスワードの基本的なプロパティを共有します。他のフィールドは、ユーザーのタイプに固有のものになります (従業員、ベンダー、マネージャーなどを考えてください)。私は単一テーブルの継承を調べてきましたが、これは適切なパターンではないようです。他のオプションは、他のモデルの has_one を持つ User モデルを持つことです。ユーザーが複数のタイプを持つことも可能です。Employee と Manager は同じ User である可能性があります。また、ユーザーのタイプに基づいて、ログイン時にユーザーを特定のページに誘導したいと考えています。これは、ルーターの制約またはログイン時の大きな switch ステートメントによって行うのが最善でしょうか?

4

1 に答える 1

0

おそらく、ユーザーの役割を定義する必要があります。ロールとアクセス権限を管理するには、 CanCanをお勧めします。

1 つのテーブルにさまざまなフィールドを実装する 1 つの方法は、Postgres の NoSQL (hstore) を使用することです。これは簡単な入門チュートリアルです。

これは Rails 3.2+ での使用例です

于 2012-12-03T19:06:36.363 に答える