将 ActiveRecord 对象的所有属性(除了 id、created_at、updated_at)设置为 nil 的最简单方法是什么?
有一个数组叫attribute_names
在模型上,它确实包含所有属性,因此使用reject来过滤属性:
class Model < AR::Base
def nilify_attributes!(except = nil)
except ||= %w{id created_at updated_at}
attribute_names.reject { |attr| except.include?(attr) }.each { |attr| self[attr] = nil }
end
end
See http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-i-attribute_names http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-i-attribute_names
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)