Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何调用ActiveRecord::Base';什么是负荷法?_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 如何调用ActiveRecord::Base';什么是负荷法?

Ruby on rails 如何调用ActiveRecord::Base';什么是负荷法?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,要在基于ActiveRecord的模型中执行特殊类型的验证,我需要手动执行更新\u属性步骤: 加载(参数)&保存 但当我尝试在模型的实例(mymodel.load(params))上调用“load”时,它会在ActiveSupport上调用“load”,试图加载一个文件 有没有办法告诉Rails使用ActiveRecord方法 谢谢 问候 Marc直接来源于来源: # File activerecord/lib/active_record/base.rb, line 2665 def updat

要在基于ActiveRecord的模型中执行特殊类型的验证,我需要手动执行更新\u属性步骤: 加载(参数)&保存

但当我尝试在模型的实例(mymodel.load(params))上调用“load”时,它会在ActiveSupport上调用“load”,试图加载一个文件

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

谢谢

问候
Marc

直接来源于来源:

# File activerecord/lib/active_record/base.rb, line 2665
def update_attributes(attributes)
  self.attributes = attributes
  save
end

实际上,它是rails 2,但我想它并没有改变太多。

我想您需要
ActiveRecord::Base
assign\u属性
方法

我使用的是Rails 3.1.3,但希望这对您来说是正确的


粘贴的
update_属性
源属于
ActiveResource::Base
,而不是
ActiveRecord::Base
。我自己也犯了这个错误:
ActiveRecord::Base
不提供
load
方法。相反,调用了
Object
load
方法,它似乎是由
ActiveSupport-3.1.3/lib/active\u support/dependencies.rb

中的ActiveSupport的
Loadable
模块提供的?一般来说,如果你反对框架,你就是在“做错事”。这是关于一个事件:如果它是过去的,你是不允许改变它的。但是一个简单的验证是不起作用的,你可以把日期改成将来的日期。所以我必须检查参数。因为这感觉像是在与框架作斗争,所以我希望Rails解析参数并检查对象本身。通过覆盖update_属性,如果出现问题,我也可以中止保存。哦,对了,我忘了告诉你我正在使用Rails 3。源代码已根据api dock进行了更改:
#文件activeresource/lib/active_resource/base.rb,第1267行def update_attributes(attributes)load(attributes)and save end
是的,正是我要找的!非常感谢。