Я посмотрел вокруг, но не уверен, как это сделать ->Рельсы 3: MTI с дизайном и наследием?
У меня есть 1 Supertype и 2 подтипы в моем дб, а выложенные MTI, используя камень наследия и с проверкой по завещанию.
class User < ActiveRecord::Base
acts_as_predecessor
devise :database_authenticatable, :registerable, :recoverable,
:rememberable, :trackable, :validatable
end
class SubUser1 < User
acts_as_heir_of :user
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable #some unique columns
end
class SubUser2 < User
acts_as_heir_of :user
devise :database_authenticatable, :registerable, :recoverable,
:rememberable, :trackable, :validatable #Hi,some unique columns
end
Но этот тест не работает.
1) SubUser should create a new instance given a valid attribute
Failure/Error: SubUser.create!(@attr)
ActiveRecord::RecordInvalid:
Validation failed: Predecessor password can't be blank
Мой вопрос, как я могу проверить с, если заявление в пользовательской модели, чтобы проверить, какой тип I пользователь Я инстанцировании. И в том случае, когда я инстанцирование subuser, пропустить эту строку в пользователе ->
:database_authenticatable, :registerable, :recoverable,
:rememberable, :trackable, :validatable
Я попытался 'если self.to_s == "Пользователь" Разрабатывают: database_authenticatable,: регистрируемые,: возмещена,: запоминающийся,: отслеживаются,: подтверждаемых end' Но он ничего не сделал .. –
Вам нужно сделать все, что придумаете? Если вы удаляете «разрабатывать» строки из ваших подклассов - разве они не наследуются от пользователя? –