教師、学生、および管理者と多態的な関係を持つユーザー モデルがあります。これら 3 種類のユーザーは、それぞれ学校に属しています。ユーザーのユーザー名が学校内で一意になるようにしたいと思います。これを達成するための検証をどのように記述しますか?
私のモデルは次のようになります。
class User < ActiveRecord::Base
belongs_to :profileable, :polymorphic => true
delegate :school, :to => :profileable
end
class Student < ActiveRecord::Base
belongs_to :school
has_one :user, :as => :profileable
delegate :name, :username, :to => :user
end
class Teacher < ActiveRecord::Base
belongs_to :school
has_one :user, :as => :profileable
delegate :name, :username, :to => :user
end
class Admin < ActiveRecord::Base
belongs_to :school
has_one :user, :as => :profileable
delegate :name, :username, :to => :user
end