2018-07-25-回调中遇到的一些方法

toggle切换true/false

user.toggle(:terms_of_service)
PS: 1、如果原terms_of_service为true,则变成false
2、有无!表示是否跳过回调

touch更新对象时间戳

user.touch
PS:有无!表示是否跳过回调

decrement 相关

decrement

user = User.first
user.decrement(:age)
user.save

decrement!

user = User.first
user.decrement!(:age,2)

1、decrement 和 decreament! 都可以接两个参数,第二个参数是减少数(可省)
2、decrement 需要save对象才会生效,decrement!直接生效

decrement_counter
User.decrement_counter(:age,1,touch: true)

1、参数含义decrement_counter(字段,id,是否更新时间戳可省)
2、它是一个类方法
3、它没有decrement_counter!这种写法
4、它每次减少只能是1

update相关

update 与 update_attributes

1、后接hash,会更新对象中所有的字段
2、update_attributes不会跳过回调

update_column VS update_attribute

1、它们是唯一两个不能接hash的方法(field,value)
2、update_attribute 不会跳过回调

update_columns

更新单个字段,接hash

update_all

1、类方法
2、更新所有对象

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、心得体会1、今天完成了什么? Rails guide 4 170页 5个小时 重看了镐头书看了第一部分 1个小...
    柳辉阅读 2,801评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,478评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,126评论 2 89
  • 之前写过《关于信息获取的反思》,然后就着手搭建信息获取的渠道,现在有了初步的版本,分享一下,也当做是我自己的总结。...
    守鱼阅读 921评论 0 0
  • 晚上七点下班,急匆匆赶到葡萄籽。小朋友已经下课了,一个人安安静静的在教室里看书。别的小朋友已经陆续被家长接走,看着...
    若米汤阅读 1,917评论 0 1