ユーザーがマネージャー、従業員、管理者などの複数の役割を持つことができる Rails アプリに取り組んでいます。
複数の役割があるため、この状況では STI は機能しませんが、可能であれば役割関連のデータを別のテーブルに保持したいと考えています。
したがって、今のところ、私のスキーマは次のようになります。
create_table :roles do |t|
t.string :name
t.timestamps
end
create_table :users do |t|
t.string :first_name
t.string :last_name
t.string :email, :default => "", :null => false
t.timestamps
end
create_table :roles_users, :id => false do |t|
t.references :role, :user
end
そして、私のユーザー/ロール モデルは両方ともhas_and_belongs_to_many
相互に関係があります。
たとえば、have_many
従業員にマネージャーが必要な場合、この設定でそれは可能ですか? マネージャーの役割を持つユーザーが、のようなマネージャー固有の属性を持つことは可能secret_manager_information
ですか? それとも、自分のアプローチを再考する必要がありますか?