在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