1. [27] pry(main)> c = Channel.find 6
  2. => #<Channel id: 6, title: "会员", cid: "96", pid: "", channel_position: "", data_type: "", filter_id: "", version: "1.2.0">
  3. [28] pry(main)> c.valid?
  4. => true
  5. [29] pry(main)>
  6. [30] pry(main)>
  7. [31] pry(main)> c.has_filter
  8. => ""
  9. [32] pry(main)> c.cid
  10. => ""
  11. [33] pry(main)> c.is_default_channel
  12. => ""
  13. [34] pry(main)> c.reload
  14. => #<Channel id: 6, title: "会员", cid: "96", pid: "", channel_position: "", data_type: "", filter_id: "", version: "1.2.0">
  15. [35] pry(main)> c.previous_changes
  16. => {}
  17. [36] pry(main)> c.title = c.title + 1
  18. TypeError: no implicit conversion of Fixnum into String
  19. from (pry):43:in `+'
  20. [37] pry(main)> c.title = c.title + ''
  21. => "会员1"
  22. [38] pry(main)> c.save
  23. => true
  24. [39] pry(main)> c.previous_changes
  25. => {"title"=>["会员", "会员1"], "updated_at"=>[Fri, 08 Apr 2016 08:10:30 CST +08:00, 2016-04-08 12:28:20 +0800]}
  26. [40] pry(main)> a, b = [1,2]
  27. => [1, 2]
  28. [41] pry(main)> a
  29. => 1
  30. [42] pry(main)> b
  31. => 2

model里的private方法

  1. def update_auto_activate_job
  2. if active? # 对已经设置了自动开启时间的视频进行手动开启操作
  3. if (change = previous_changes[:state]) && change[0] == 0
  4. if job = Sidekiq::ScheduledSet.new.find_job(auto_activate_job_id)
  5. job.delete
  6. end
  7.  
  8. update_attributes auto_activated_at: nil, auto_activate_job_id: nil
  9. end
  10. else # 针对未开启的视频,设置,取消或者更新定时开启时间
  11. if change = previous_changes[:auto_activated_at]
  12. original_value, new_value = change
  13.  
  14. if original_value.nil? # 设置定时开启,id是当前model里的id
  15. job_id = AutoActivateWorker.perform_at new_value, id
  16. update_attribute :auto_activate_job_id, job_id
  17. elsif new_value.nil? # 取消定时开启
  18. if job = Sidekiq::ScheduledSet.new.find_job(auto_activate_job_id)
  19. job.delete
  20. end
  21.  
  22. update_attribute :auto_activate_job_id, nil
  23. else # 更新定时开启时间
  24. if job = Sidekiq::ScheduledSet.new.find_job(auto_activate_job_id)
  25. job.reschedule new_value
  26. end
  27. end
  28. end
  29. end
  30. end

previous_changes方法的更多相关文章

  1. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  2. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  3. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  4. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  5. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  6. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  7. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  8. [BOT] 一种android中实现“圆角矩形”的方法

    内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...

  9. JS 判断数据类型的三种方法

    说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...

随机推荐

  1. ajax请求模拟登录

    前台 @if (Session["username"] != null) { <div class="login"> <span style= ...

  2. Linq之Linq to Objects

    目录 写在前面 系列文章 linq to objects 总结 写在前面 上篇文章介绍了linq的延迟加载特性的相关内容,从这篇文章开始将陆续介绍linq to Objects,linq to xml ...

  3. Bootstrap3.0学习第二十三轮(JavaScript插件——警告框)

    详情请查看http://aehyok.com/Blog/Detail/29.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...

  4. 使用 ArcGIS中的ArcObjects进行二次开发

    参考网址:https://blogs.esri.com/esri/arcgis/2012/12/07/arcobjects-or-runtime-sdk/ http://resources.arcgi ...

  5. WAR包

    1.windows命令下使用cmd命令打包 jar -cvf applicationname.war package.*: 2.程序中使用代码打包(这里用java) try{ string strja ...

  6. 【SDOI2008】解题汇总

    好叭我真的是闲的了... /---------------------------------------------/ BZOJ-2037 [SDOI2008]Sue的小球 DP+相关费用提前计算 ...

  7. Penetration Testing、Security Testing、Automation Testing

    相关学习资料 http://www.cnblogs.com/LittleHann/p/3823513.html http://www.cnblogs.com/LittleHann/p/3828927. ...

  8. Nginx Installation、Configuration、Rreverse Proxy、Load Balancing Learning

    目录 . Nginx简介 . Nginx安装部署 . Nginx安全配置 . Nginx反向代理实践 . Nginx负载均衡实践 1. Nginx简介 0x1: Nginx的基本特性 Nginx(&q ...

  9. php中静态变量和静态方法

    1,静态变量:所有对象共享的变量成为静态变量.静态变量类似于全局变量,不过全局变量破坏对象的封装性,因此其对应于面向过程:静态变量对应于面向对象. 2,全局变量,全局变量的使用实例如下,声明全局变量时 ...

  10. POJ3259Wormholes(判断是否存在负回路)

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 38300   Accepted: 14095 Descr ...