Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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 当一个对象为“.valid”返回false时,有没有办法找出原因?_Ruby On Rails_Validation - Fatal编程技术网

Ruby on rails 当一个对象为“.valid”返回false时,有没有办法找出原因?

Ruby on rails 当一个对象为“.valid”返回false时,有没有办法找出原因?,ruby-on-rails,validation,Ruby On Rails,Validation,当对象为.valid?返回false时,有没有办法找出原因 CardSignup.new(params[:card_signup]).valid? => false 听起来很棒,但是为什么呢 有点相关,但这里有一个例子。我正在这样做: @card_signup.update_attributes("email"=>"asdfa@asfa.com") => false 但如果我这样做: @card_signup.update_attribute("email", "asdfa

当对象为
.valid?
返回false时,有没有办法找出原因

CardSignup.new(params[:card_signup]).valid?
=> false
听起来很棒,但是为什么呢

有点相关,但这里有一个例子。我正在这样做:

@card_signup.update_attributes("email"=>"asdfa@asfa.com")
=> false
但如果我这样做:

@card_signup.update_attribute("email", "asdfa@asfa.com")
=> true

当我更新单个属性而不是
更新\u属性
时,为什么会起作用?

是的,有一种方法
@card\u注册。错误
是的,有一种方法
@card\u注册。错误
你应该检查
@card\u注册。错误
集合


对于第二个问题,
update\u属性
方法保存记录而不进行验证过程。相反,
更新属性
执行验证。

您应该检查
@card\u注册。错误
集合


对于第二个问题,
update\u属性
方法保存记录而不进行验证过程。相反,
update\u attributes
执行验证。

单属性更新不经过验证过程

如果构造的ActiveRecord对象无效,请尝试访问
errors
方法

例如


单属性更新不经过验证过程

如果构造的ActiveRecord对象无效,请尝试访问
errors
方法

例如


谢谢你,杰夫!这立刻回答了不少问题。有点像更新属性的方法。谢谢Jef!这立刻回答了不少问题。有点像update_attributes方法。
c = CardSignup.new(params[:card_signup])
puts c.errors.to_a.inspect if !c.valid?