多个 save 方法
在以下几个类或模块里都有 save 方法,那么它到底是如何工作,如何保存数据的呢。
module ActiveRecord
class Base
# ... ...
# 真正的保存 create_or_udpate
include Persistence
# ... ...
# 相关校验 perform_validations
include Validations
# ... ...
# 相关脏数据 Dirty
include AttributeMethods
# ... ...
# 加上事务 rollback_active_record_state! 及 with_transaction_returning_status
include Transactions
# ... ...
end
end根据 Ruby 的代码执行规则:会"反着"模块的引入顺序,嵌套执行里面的 save 方法。
同理,当执行其它某个操作的时候,也会发生类似情形。
参考
最后更新于
这有帮助吗?