要在基于ActiveRecord的模型中进行特殊验证,我需要手动执行update_attributes步骤: 负载(params)&&保存
但是当我尝试在我的Model的实例(mymodel.load(params))上调用“load”时,它在ActiveSupport上调用“load”,尝试加载文件。
有没有办法告诉Rails使用ActiveRecord方法?
谢谢!
此致 马克
答案 0 :(得分:2)
我认为您需要assign_attribute
的{{1}}方法。
我正在使用Rails 3.1.3,但希望这对你来说是正确的。
您粘贴的ActiveRecord::Base
来源属于update_attributes
,而不属于ActiveResource::Base
。我自己犯了这个错误:Is it possible to call ActiveResource::Base#load? ActiveRecord::Base
没有提供ActiveRecord::Base
方法。而是调用load
load
方法,该方法似乎由Object
中的ActiveSupport Loadable
模块提供。
答案 1 :(得分:1)
直接来源:
# File activerecord/lib/active_record/base.rb, line 2665
def update_attributes(attributes)
self.attributes = attributes
save
end
实际上它是轨道2,但我想它并没有那么多改变。