previous_changes方法
[27] pry(main)> c = Channel.find 6
=> #<Channel id: 6, title: "会员", cid: "96", pid: "", channel_position: "", data_type: "", filter_id: "", version: "1.2.0">
[28] pry(main)> c.valid?
=> true
[29] pry(main)>
[30] pry(main)>
[31] pry(main)> c.has_filter
=> ""
[32] pry(main)> c.cid
=> ""
[33] pry(main)> c.is_default_channel
=> ""
[34] pry(main)> c.reload
=> #<Channel id: 6, title: "会员", cid: "96", pid: "", channel_position: "", data_type: "", filter_id: "", version: "1.2.0">
[35] pry(main)> c.previous_changes
=> {}
[36] pry(main)> c.title = c.title + 1
TypeError: no implicit conversion of Fixnum into String
from (pry):43:in `+'
[37] pry(main)> c.title = c.title + ''
=> "会员1"
[38] pry(main)> c.save
=> true
[39] pry(main)> c.previous_changes
=> {"title"=>["会员", "会员1"], "updated_at"=>[Fri, 08 Apr 2016 08:10:30 CST +08:00, 2016-04-08 12:28:20 +0800]}
[40] pry(main)> a, b = [1,2]
=> [1, 2]
[41] pry(main)> a
=> 1
[42] pry(main)> b
=> 2
model里的private方法
def update_auto_activate_job
if active? # 对已经设置了自动开启时间的视频进行手动开启操作
if (change = previous_changes[:state]) && change[0] == 0
if job = Sidekiq::ScheduledSet.new.find_job(auto_activate_job_id)
job.delete
end update_attributes auto_activated_at: nil, auto_activate_job_id: nil
end
else # 针对未开启的视频,设置,取消或者更新定时开启时间
if change = previous_changes[:auto_activated_at]
original_value, new_value = change if original_value.nil? # 设置定时开启,id是当前model里的id
job_id = AutoActivateWorker.perform_at new_value, id
update_attribute :auto_activate_job_id, job_id
elsif new_value.nil? # 取消定时开启
if job = Sidekiq::ScheduledSet.new.find_job(auto_activate_job_id)
job.delete
end update_attribute :auto_activate_job_id, nil
else # 更新定时开启时间
if job = Sidekiq::ScheduledSet.new.find_job(auto_activate_job_id)
job.reschedule new_value
end
end
end
end
end
previous_changes方法的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- ArcGIS 10.0紧凑型切片读写方法
首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...
- [BOT] 一种android中实现“圆角矩形”的方法
内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...
- JS 判断数据类型的三种方法
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...
随机推荐
- [Json.net]快速入门
引言 有个朋友问了一个如何更方便的解析json格式字符串,之前也没怎么研究过json.net,就上网帮他查了一下,现学现卖的给他整了一个demo,这才发现json.net的强大,用着很方便. Json ...
- Javascript写入txt和读取txt文件示例
1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Var fso=new ActiveXObject(Scripting.FileSystem ...
- “耐撕”团队2016.03.28 站立会议
1. 时间:20:30--20:50 2. 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.c ...
- Ibatis学习总结5--动态 Mapped Statement
直接使用 JDBC 一个非常普遍的问题是动态 SQL.使用参数值.参数本身和数据列都 是动态的 SQL,通常非常困难.典型的解决方法是,使用一系列 if-else 条件语句和一连串 讨厌的字符串连接. ...
- Spring AOP详解 、 JDK动态代理、CGLib动态代理
AOP是Aspect Oriented Programing的简称,面向切面编程.AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理以及日志记录.AOP将这些分散在各个业务逻辑中的代码 ...
- 解决vs2015使用fopen、fprintf等函数报错的问题
出现错误提示: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable ...
- session实现防止重复提交,以及验证
参考文档 1.生成Token的参考文档.http://www.cnblogs.com/TianFang/p/3180899.html 2.主要参考文档.http://www.cnblogs.com/x ...
- UVA 11527 Unique Snowflakes
用STL做会很方便 SET: /*by SilverN*/ #include<iostream> #include<algorithm> #include<cstring ...
- python库requests登录zhihu
废了很大劲,开始搞错了登录post信息的网址,后来没找到xsrf信息,看了很多文章才搞定. 大概过程如下: 打开登录页面,同时打开fldder,输入信息去监控过程. 查看post了哪些信息,哪些是自己 ...
- crossdomain.xml的配置详解
目录 1 简介 2 crossdomain.xml的配置详解 3 总结 1 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及 ...