У меня есть модель пользователя, которая имеет полиморфные отношения с учителями, учениками и администратором. Эти три типа пользователей относятся к школе. Я хотел бы иметь его так, чтобы имя пользователя было уникальным в школе. Как я могу написать подтверждения для этого?проверить уникальность поля в области
Вот что мои модели выглядит следующим образом:
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
Вы пробовали обычную 'validates_uniqueness_of: username' в своей модели пользователя? Остальные классы только связывают их. – KappaNossi
Да, но это не совсем то, что я ищу. Я хочу, чтобы имя пользователя было уникальным в школе. Таким образом, пользователь в одной школе может иметь то же имя пользователя, что и пользователь в другой школе. – dhouty