У меня есть класс, подобный следующему:
class FruitKinds < ActiveRecord::Base
Apple = FruitKinds.find(:all).find { |fk|
fk.fruit_name == :apple.to_s
}
# ... other fruits
# no methods
end
Apple и другие специфические фрукты обычно используются в качестве значений по умолчанию в других местах моего приложения, поэтому я хочу удобные средства для ссылки на них перечисляемым способом, статическим образом.
Однако есть проблема. Существует миграция базы данных для создания таблицы FruitKinds
и заполнения ее специальным Fruits
, например Apple
. Когда выполняется миграция базы данных для инициализации FruitKinds, rake
не запускается, потому что сначала загружается FruitKinds
, который затем вызывает базу данных, что, конечно же, завершается неудачей, поскольку таблицы FruitKinds еще нет.
Обходной путь - закомментировать поля FruitKinds :: * во время миграции, но это ужасно и хакерски. Какой лучший способ сделать это?