4

DB に行を作成できません。Rails は明らかに起動し、エラーなしですぐにトランザクションをロールバックします。私はsqlite3を使用しています。

  logger.debug("creating billing name...")
  BillingName.create() #also tried BillingName.new.save
  logger.debug("...created")

ログファイル:

 creating billing name...
 ^[[1m^[[36m (0.1ms)^[[0m  ^[[1mbegin transaction^[[0m
 ^[[1m^[[35m (0.1ms)^[[0m  rollback transaction
 ...created

select * from billing_name実際、エントリが追加されていないことを示しています。取引が拒否された理由を確認するにはどうすればよいですか?

4

2 に答える 2

12

saveまたはの後にエラーを確認できますvalid?

billing_name = BillingName.new
billing_name.save # or billing_name.valid?
puts billing_name.errors.inspect
于 2013-06-18T19:34:23.823 に答える
5

これらは、モデルを調べてエラーを見つけるのに役立つ良い答えです。私もそれらを使用します。

しかし、特にコールバックでは、ActiveRecord が必ずしも有用な情報を提供するとは限らないことがわかりました。valid?true になり、エラーは空になり、コンソールにはロールバック以外は何も表示されません。そのため、これらのコールバック、特に before_create フィルターで何が起こっているかを調べるのに適しています。

于 2013-08-12T23:49:02.997 に答える