Вместо перезаписи метода сохранения, я бы порекомендовал вам создать хук before_update
, который всегда возвращает false.Из документации обратного вызова :
Если обратный вызов before_ * возвращает false, все более поздние обратные вызовы и связанное с ними действие отменяются
A before_update
обратный вызов будет выполняться толькопри попытке сохранить уже существующую запись.Когда он изначально создан, он будет работать вместо before_create
.С помощью ловушки вы можете быть уверены, что он будет вызван независимо от того, какой метод используется для сохранения записи.Когда вы перезаписываете существующий метод save
, вам необходимо убедиться, что save!
, update_attributes
и т. Д. Также перезаписаны.