如何调用ActiveRecord :: Base的加载方法?

时间:2011-08-28 15:18:32

标签: ruby-on-rails ruby activerecord

要在基于ActiveRecord的模型中进行特殊验证,我需要手动执行update_attributes步骤: 负载(params)&&保存

但是当我尝试在我的Model的实例(mymodel.load(params))上调用“load”时,它在ActiveSupport上调用“load”,尝试加载文件。

有没有办法告诉Rails使用ActiveRecord方法?

谢谢!

此致 马克

2 个答案:

答案 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,但我想它并没有那么多改变。