Ya.*_*Ya. 4 activerecord ruby-on-rails rollback
我无法在数据库中创建一行.Rails显然会启动,然后立即回滚事务而没有任何错误.我正在使用sqlite3.
logger.debug("creating billing name...")
BillingName.create() #also tried BillingName.new.save
logger.debug("...created")
Run Code Online (Sandbox Code Playgroud)
日志文件:
creating billing name...
^[[1m^[[36m (0.1ms)^[[0m ^[[1mbegin transaction^[[0m
^[[1m^[[35m (0.1ms)^[[0m rollback transaction
...created
Run Code Online (Sandbox Code Playgroud)
select * from billing_name显示确实没有添加任何条目.如何判断交易被拒绝的原因?
spu*_*len 10
您可以在save或之后检查错误valid?
billing_name = BillingName.new
billing_name.save # or billing_name.valid?
puts billing_name.errors.inspect
Run Code Online (Sandbox Code Playgroud)
这些都是很好的答案,可以帮助您通过检查模型找到错误。我也用那些。
但我发现 ActiveRecord 并不总是提供有用的信息,尤其是在回调中。valid?为真,错误为空,控制台除了回滚外不会显示任何内容。所以,一个很好的地方是在这些回调中发生了什么,特别是 before_create 过滤器。
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |