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、更新所有对象
网友评论