複数の役割を持つRailsアプリケーションを構築しています。各ロールには非常に異なるプロパティと動作があるため、ユーザーモデルに対して継承を使用することはできません(つまり、ログインするとページへのアクセスと機能が異なります)。そこで、役割ごとに個別のモデルを構築することにしました(つまり、顧客、サービスプロバイダー、顧客担当者など)。
このための協会はどのように機能しますか?私は次のことを思いついたが、Roleクラスは私には悪いように見える。ユーザーが複数のロールを持つことができればそれほど悪くはありませんが、ロールは1つしかないため、ロールにカスタム検証を記述して、1つのロールのみが選択されていることを確認する必要があります。皆さんはどう思いますか?
class User < ActiveRecord::Base
has_one :role
end
class Role < ActiveRecord::Base
has_one :customer
has_one :service_provider
has_one :customer_representative
end
class Customer < ActiveRecord::Base
end
class ServiceProvider < ActiveRecord::Base
end
class CustomerRepresentative < ActiveRecord::Base
end