Вот конкретный пример ответа Джона Нанемейкера.
Я обнаружил, что в коде экземпляра вашего объекта есть ссылки на следующие токены, и поэтому они будут конфликтовать с любым ключом с тем же именем (mongo_mapper / plugins / callbacks.b):
:destroy
:save
:create
:update
Если вы определите
key :update, Integer
тогда вы сможете ПОЛУЧИТЬ, УДАЛИТЬ, POST, но не PUT, потому что он попытается вызвать run_callbacks (: update), что на тот момент стало бессмысленным. Я не знаю, как это исправить, чтобы в моей модели было поле «обновление». Кто-нибудь?
Follow-up: кажется, что экземплярный метод, который выполняет фактическое обновление, также называется: update, поэтому он не поможет исключить использование этих токенов для обратных вызовов. Скорее, это просто случай столкновения с методом экземпляра, который вызывает гораздо более странную ошибку, потому что он используется в качестве типа обратного вызова FIRST, прежде чем использоваться в качестве метода.