Я использую Rails 3.1 и Mongoid.
Я использую контроллеры RESTful.
У меня есть класс, скажем, описание.
Этот класс имеет атрибут с именем: состояние с двумя (может быть, когда-нибудь) допустимыми значениями, такими как: активный и: рабочий.
Мой клиент хочет иметь N рабочих версий (: работающих), но одну и только одну: активное описание каждый раз. Это означает, что когда я #активирую описание, старый активный должен быть деактивирован.
Дело в том, что я использовал подход обратного вызова (before_validation =>: deactivate_previous_description). Это нормально, пока я пытаюсь активировать рабочую копию. Но когда я делаю то же самое с описанием: active, оно деактивируется, потому что обратный вызов переключает свое состояние обратно на: working.
Что я делаю не так? Есть ли лучший способ решить эту проблему?