在RoR应用程序中,我想在我的一个模型中专门使用ActiveRecord的update_attributes()方法,提取一些特殊处理的属性,并将其余的属性传递给原来的update_attributes()方法.细节:
class Premise < ActiveRecord::Base ... def update_attributes(attrs) attrs.each_pair do |key,val| unless has_attribute?(key) do_special_processing(key,val) attrs.delete(key) end end # use original update_attributes() to process non-special pairs super.update_attributes(attrs) end ... end
调用super.update_attributes(attr)会引发一个错误:
undefined method `update_attributes' for true:TrueClass
…这让我怀疑我真的不了解Ruby中的超级关键字.我失踪了什么具体来说,如何调用原来的update_attributes()方法?