Можно ли сделать модель ActiveRecord в RoR с однократной записью и блокировкой? - PullRequest
0 голосов
/ 09 августа 2011

Я пытаюсь выяснить, как сохранить экземпляр активной записи в базе данных, а затем заблокировать его, чтобы вы больше не могли писать в него (обновлять или сохранять), но вы все равно можете читать из него.

Я бы хотел сделать это при создании в самой модели.

1 Ответ

2 голосов
/ 09 августа 2011

Вместо перезаписи метода сохранения, я бы порекомендовал вам создать хук before_update, который всегда возвращает false.Из документации обратного вызова :

Если обратный вызов before_ * возвращает false, все более поздние обратные вызовы и связанное с ними действие отменяются

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...