Как предполагает Колин, AASM сохранит ваши изменения за вас. То, что сказал Маркус, совершенно неверно, за исключением того факта, что в последней версии камня есть ошибка.
В строке 180 файла lib / persistence / active_record_persistence.rb (вы можете получить это, запустив gem: unpack), вы должны увидеть комментарий, в котором говорится:
Записывает состояние в столбец состояния и сохраняет его в базе данных.
используя update_attribute (который обходит валидацию)
Однако, в коде, вместо этого он вызывает save!
unless self.save
Ошибка возникает, когда базовая модель не проходит проверку, потому что метод сохранения не обходит проверку по умолчанию. Быстрое решение было бы сделать это вместо этого:
unless self.save(false)
Теперь переходы действительно сохраняют новое состояние в базе данных.