如何在Rails中调试静默数据库错误(例如“保存”)?

时间:2012-10-09 22:17:37

标签: ruby-on-rails ruby-on-rails-3 debugging activerecord

如何获得有关Rails中静默发生的错误的更多信息,例如@ object.save?

3 个答案:

答案 0 :(得分:8)

添加爆炸,以便在验证失败时引发错误。

@article.save!
# ActiveRecord::RecordInvalid: Validation failed: Title can't be blank...

如果您不希望验证失败,请始终优先使用此方法save

答案 1 :(得分:5)

根据this post,如下所示:

logger.debug @item.errors.full_messages

答案 2 :(得分:4)

有时AR会因验证错误以外的原因而无声地失败。还有一些需要检查的事情是:

  • AR回调不返回true(例如before_save)
  • 无效的父/子记录
  • @ item.valid?,@ item.errors.full_messages
  • @ item.changes,@ item.changed?

我还在检查验证错误时包含了user456584的推荐。正如Semyon所说,@ item.save!即使不是特别有帮助,至少会提出例外。