Я реализовал STI в одной из своих моделей, используя несколько советов от Alex Запись в блоге Рейснера. У меня уже были все мои подклассы, использующие контроллер суперкласса с сериализацией/хранением для хранения дополнительных атрибутов. Я добавил в суперкласс методы model_name
и self.select_options
, а также инициализатор предварительной загрузки из блога Алекса. Я также изменил свой collection_select
в помощнике представления _form и проверке атрибутов, чтобы использовать метод self.select_options
. Все мои подклассы находятся в отдельных файлах в папке app/models/subfolder, хотя они не имеют пространства имен, как SubFolder::Subclass.
Тогда я начинаю сталкиваться с проблемами. При изменении любого кода self.select_options
перестает возвращать все подклассы. Он возвращает только небольшое подмножество или ничего. Таким образом, из-за проверки и привязки _form я не могу редактировать/обновлять свои модели после изменения кода. Из того, что я мог сказать, когда я меняю какой-либо код, Rails перезагружает среду, но не модели в подпапке.
Я попытался добавить маршруты в config.autoload_paths как многие предполагают, но в итоге это не сработало.
Итак, в конечном итоге, я хочу:
- Что-то, чтобы исправить автозагрузку, чтобы мне не приходилось перезапускать сервер после каждого изменения
- Базируйте его на подкаталоге, содержащем все дочерние элементы, чтобы избежать ручного обслуживания массива.
- Рельсы 3.2.11, рубин 1.9.3p125, убунту 12.04.01, рвм