Ruby on rails 未经验证的Rails 3.0模型无法保存
看起来我以一种非常微妙的方式弄乱了我的代码。。。突然,我的一个模型不再保存了 我尝试的第一件事是查看相同的命令是否在Rails控制台中工作,令我惊讶的是,它显示记录无效 为了缩小问题的范围,我注释掉了所有的验证,然后再试一次——但仍然不起作用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
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