Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.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 未经验证的Rails 3.0模型无法保存_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails 未经验证的Rails 3.0模型无法保存

Ruby on rails 未经验证的Rails 3.0模型无法保存,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,看起来我以一种非常微妙的方式弄乱了我的代码。。。突然,我的一个模型不再保存了 我尝试的第一件事是查看相同的命令是否在Rails控制台中工作,令我惊讶的是,它显示记录无效 为了缩小问题的范围,我注释掉了所有的验证,然后再试一次——但仍然不起作用 m = MyModel.find 123 => record which looks OK to me m.valid? => false m.errors => #<OrderedHash {}> # An EM

看起来我以一种非常微妙的方式弄乱了我的代码。。。突然,我的一个模型不再保存了

我尝试的第一件事是查看相同的命令是否在Rails控制台中工作,令我惊讶的是,它显示记录无效

为了缩小问题的范围,我注释掉了所有的验证,然后再试一次——但仍然不起作用

m = MyModel.find 123
 => record which looks OK to me
m.valid?
 => false
m.errors
 => #<OrderedHash {}>    # An EMPTY hash??? Is that a Rails bug?
m=MyModel.find 123
=>我觉得还可以的唱片
m、 有效吗?
=>错误
m、 错误
=>##一个空哈希???这是Rails bug吗?

以前有人见过这样的事情吗?

回答我自己的问题

很明显,我的一个before_验证方法返回了错误的-呃-愚蠢的错误

以下是ActiveRecord文档对此主题的说明:

验证前*返回语句

如果before#U验证回调的返回值可以计算为false,则进程将中止,Base#save将返回false。如果ActiveRecord::Validations#保存!它将引发ActiveRecord::RecordInvalid异常。不会向errors对象追加任何内容

是的,就像广告宣传的一样!!:)


另请参见:

是否可以尝试使用
保存而不是
保存
方法?它通常显示显式控制台错误,显示验证失败的原因。谢谢,我找到了。我应该只是RTFM:P