Как правильно использовать атрибуты типа enum в Rails 3?
Простым примером может быть сообщение с тремя состояниями: ПРОЕКТ, ИЗДАНО и УДАЛЕНО.
То, как я делаю это прямо сейчас, выглядит примерно так:
class Post < ActiveRecord::Base
DRAFT = 0
PUBLISHED = 1
DELETED = 2
end
Проблема, которая возникает, заключается в том, что, когда я запускаю свои тесты, используя spork, я должен перезагрузить модель вручную, с чем-то вроде
Spork.each_run do
Dir["#{Rails.root}/app/models/**/*.rb"].each { |model| load model }
end
Что в результате дает мне множество предупреждений, таких как
warning: already initialized constant DRAFT
warning: already initialized constant PUBLISHED
warning: already initialized constant DELETED
Все работает просто отлично, но я не думаю, что это лучший способ сделать это. Есть лучший способ сделать это? Я знаю, что есть драгоценные камни, такие как acts_as_state_machine
, но я хотел бы знать решение, не являющееся драгоценным камнем, если есть простое.