【发布时间】:2011-05-10 15:59:19
【问题描述】:
我一直在模型中使用它来阻止对某些模型的更新:
def update
self.errors.add_to_base( "Cannot update a #{ self.to_s }" )
end
我现在正在编写一个为模型提供一些额外功能的插件,我需要更新模型中的一个字段。如果我不使用插件,我会直接在模型中执行此操作...
def update
if self.changed == ['my_field']
super
else
self.errors.add_to_base( "Cannot update a #{ self.to_s }" )
end
end
我不能从我的插件中做同样的事情,因为我不知道更新行为是 ActiveRecord 默认值,还是被覆盖以防止更新。是否有另一种方法可以防止记录更新,同时允许我覆盖特定字段(并且仅在我的插件应用于此模型的情况下)。
【问题讨论】:
标签: ruby-on-rails ruby activerecord