是否可以在RoR中写入一次ActiveRecord模型并锁定?

时间:2011-08-08 20:53:08

标签: sql ruby-on-rails activerecord

我正在试图找出如何将活动记录实例保存到数据库然后锁定它以便您不能再写入它(更新或保存),但您仍然可以从中读取它。

我希望能够在模型中创建它。

1 个答案:

答案 0 :(得分:2)

我建议您创建一个始终返回false的before_update挂钩,而不是覆盖save方法。来自the callback documentation

如果before_ *回调返回false,则取消所有后续回调和相关操作

仅在尝试保存已存在的记录时才会运行before_update回调。最初创建时,它将运行before_create。使用钩子,无论使用何种方法保存记录,您都可以确定它将被调用。当您覆盖现有的save方法时,您必须确保save!update_attributes等都被覆盖。