ごとに複数の役割のためのRails STIスタイルの継承私はRailsのためのSTIの継承の例のビットにまで読んできた、 それは、ユーザの基本クラスから継承する(ユーザーの役割/タイプの私のニーズに合うように見えますが)。複数の役割を持つユーザーをあまりうまく扱えないようです。特に、データベースの型フィールドに依存しているためです。ユーザー
これにはすばやく簡単な回避策がありますか?
ごとに複数の役割のためのRails STIスタイルの継承私はRailsのためのSTIの継承の例のビットにまで読んできた、 それは、ユーザの基本クラスから継承する(ユーザーの役割/タイプの私のニーズに合うように見えますが)。複数の役割を持つユーザーをあまりうまく扱えないようです。特に、データベースの型フィールドに依存しているためです。ユーザー
これにはすばやく簡単な回避策がありますか?
STIがユーザー役割/ユーザーのシナリオで適切な解決策であるかどうかはわかりません。ユーザーの役割/種類をユーザーの特定の形態とは考えません。これを行うための別の方法は、has_and_belongs_to_many
を使用することです
class Membership < ActiveRecord::Base
belongs_to :user # foreign key - user_id
belongs_to :role # foreign key - role_id
end
class User < ActiveRecord::Base
has_many :memberships
has_many :roles, :through => :membership
end
class Role < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :membership
end
:私は、次のスキーマを持っているでしょう。また、restful_authenticationプラグインをチェックアウトすることもできます。
アンディと同様に、has_and_belongs_to_many
はこれを行う別の方法です。
注:あなたのデータベースには依然として関連テーブルが必要ですが、モデルからは隠れています。
easy_rolesの宝石に問題を回避するには良い方法があります。あなたはgithubでそれを見つけることができます。 他の人がすでにSTIと言っているのは、あなたが自分のものを実装できる方法ではないからです。
+1 STIはユーザー役割を実装する方法ではありません。 –