如何获取有关 Rails 中静默发生的错误的更多信息,例如 @object.save?
问问题
4580 次
3 回答
10
添加 bang 以便在验证失败时引发错误。
@article.save!
# ActiveRecord::RecordInvalid: Validation failed: Title can't be blank...
save
如果您不希望验证失败,请始终优先使用此方法。
于 2012-10-10T05:25:17.573 回答
7
根据这篇文章,类似以下的工作:
logger.debug @item.errors.full_messages
于 2012-10-09T22:17:36.693 回答
6
有时,AR 会因为验证错误以外的原因静默失败。其他几件要检查的事情是:
- 不返回 true 的 AR 回调(例如 before_save)
- 无效的父/子记录
- @item.valid?, @item.errors.full_messages
- @item.changes,@item.changed?
我还包括了 user456584 关于检查验证错误的评论。正如 Semyon 所说,@item.save!即使它不是特别有用,至少会引发异常。
于 2013-12-14T06:14:38.920 回答