在rails中,除了validation错误之外,怎样才能找出导致.save()失败的原因?

我有一个ActiveRecord模型,从valid?返回true valid? (而.errors是空的),但是从save()返回false 。 如果模型实例是有效的,我怎样才能找出导致保存失败的原因?

检查你所有的callback。

我有一个这样的问题,我已经做了一堆更改模型后失败的“after_validate”方法。 模型是有效的,但“after_validate”返回false,所以如果我使用model.valid它说真,但如果我保存它给了我validation错误(从after_validatecallback传递)。 这很奇怪。

看看应用程序跟踪,你应该能够看到哪一行代码引发exception。

尝试使用爆炸版本save! (末尾带有感叹号)并检查由此产生的错误。

如果@user.save (例如)返回false ,那么运行这个来获取所有的错误:

 @user.errors.full_messages 

是的,我解决了这个问题,确保我在所有的before_ *callback中返回true,然后开始工作:)

我遇到的问题是我忘记了将validation添加到模型中。

 class ContactGroup < ActiveRecord::Base validates_presence_of :name end