5

@ object.saveなど、Railsでサイレントに発生するエラーに関する詳細情報を取得するにはどうすればよいですか?

4

3 に答える 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のコメントも含めました。そしてセミョンが言ったように、@ item.save!特に役に立たない場合でも、少なくとも例外が発生します。

于 2013-12-14T06:14:38.920 に答える