Я использую наследование одной таблицы в своем приложении и сталкиваюсь с проблемами при создании унаследованных пользователей от предка. Например, со следующей настройкой:
class School < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
attr_accessible :type #etc...
belongs_to :school
end
Class Instructor < User
attr_accessible :terms_of_service
validates :terms_of_service, :acceptance => true
end
Class Student < User
end
Как создать запись instructor
или student
из экземпляра School? Попытка что-то вроде School.first.instructors.build(....)
дает мне только новый экземпляр User, и у меня не будет доступа к полям, специфичным для инструктора, таким как terms_of_service
, вызывающим ошибки позже при создании форм для инструктора, сборка из консоли даст ошибка массового назначения (поскольку он пытается создать запись Пользователь, а не запись Инструктор, как указано). Я привел пример School, но есть несколько других ассоциаций, которые я хотел бы унаследовать из таблицы User, чтобы мне не приходилось повторять код или поля в базе данных. У меня возникла эта проблема, потому что ассоциации не могут быть разделены в настройке STI?