【问题标题】:after_create called after failed saved?after_create 保存失败后调用?
【发布时间】:2015-09-02 02:56:38
【问题描述】:

我想在确定模型已保存时向外部软件发送请求。

1) 如何确定调用 after_create 的顺序?

2) 创建失败时会调用它吗?

RAILS API 文档说:

请注意,此回调仍包含在保存周围的事务中。

3) 这是否意味着在调用after_save 之前需要save 成功,还是意味着一旦调用saveafter_save 总是被触发?

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    我将如何了解 after_create 的调用顺序以及是否调用 通过失败的创建仍然存在?

    您可以在此处阅读回调的顺序: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

    如果事务失败,save 事件(和create/update 事件)返回false。这将停止运行所有以后的回调。所以,after_saveafter_create/after_update 都不会在失败的save(或失败的create/update)上运行。

    ...事务被回滚,因此数据库实际上并未更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2021-11-10
      相关资源
      最近更新 更多