[ROR] ActiveSupport::Callbacks的使用
来源:互联网 发布:淘宝物流业务流程图 编辑:程序博客网 时间:2024/06/06 05:30
ActiveSupport::Callbacks 提供了一个独立于rails 的回调功能
所谓的回调 :就是在执行一个方法的时候,自动的回调执行另一个对象,为什么说是对象,而不是说方法
因为 自动回调的不仅仅 是 方法,也可以是 代码块
那么如何使用 ActiveSupport::Callbacks 来创建回调呢?
1 require "active_support/all" 2 class Mod 3 include ActiveSupport::Callbacks 4 define_callbacks :update 5 set_callback :update, :before, :update_message 6 7 def update_message 8 puts "我是在update方法之前调用" 9 end 10 11 def update 12 run_callbacks :update do 13 puts "开始执行update本身的逻辑" 14 end 15 end 16 17 set_callback :update, :after do 18 puts "我是在Update方法逻辑结束之后调用" 19 end 20 21 end 22 23 24 Mod.new.update
我是在update方法之前调用开始执行update本身的逻辑我是在Update方法逻辑结束之后调用
首先引入 active_support 库 或者说 active_support的gem
代码中: 意图是在执行 update 方法之前 来执行 一个对象(可以是方法,也可以是代码块),总之需要执行另一个逻辑
在结束 update 方法后执行另一个逻辑
首先看 define_callbacks
他的作用 是用来 声明 一个 需要执行 回调的方法(这里声明的回调方法是 update)
在 update 方法中 ,run_callbacks :update 是用来执行回调方法
而需要回调的对象创建 使用的是: set_callback
set_callback 有三个参数,第一个参数表示的需要回调的方法(这里是update),回调执行的时间(before,after)之前、之后等
第三个参数执行的 对象
所以上面的代码很好 理解就是 ,我定义了一个 update 方法,需要在调用update 方法之前 回调 update_message 方法,update方法结束后回调一个代码块
然后得出了结果
1 0
- [ROR] ActiveSupport::Callbacks的使用
- [Ruby On Rails]Rails中的ActiveSupport::Callbacks的使用
- 单独使用ActiveSupport的助记
- RoR读书笔记 --- Active Record Validations and Callbacks
- ROR中Hpricot的使用
- 强大的 ActiveSupport::Notifications
- jQuery Callbacks使用
- keras的EarlyStopping callbacks的使用与技巧
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (1)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (2)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (3)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (4)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (5)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (1)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (4)
- 在 .NET 中使用 WEB SERVICE 的CallBacks机制 (5)
- ror 使用分页插件的一些问题
- 深入Rails3: ActiveSupport 的 class_attribute
- php基础知识 8,数学函数库和日期时间函数库
- [PAT-乙级]1003.我要通过!
- I/O
- 会议室预约系统-微信预约时代-方便快捷实用有效
- Python-函数(一)
- [ROR] ActiveSupport::Callbacks的使用
- G-07
- Ubuntu下 phpcs 和 composer 全局安装
- C++文件读取语言
- C++精讲系列1
- 多核编程 与 单核多线程编程的区别
- 数据分析的书籍
- Android中的AES加密算法解析
- 关于wamp下http://localhost地址The requested URL / was not found on this server.问题解决过程分享