Update Column in Mongoid Without Update Updated_at Attribute

没有 update_column 的方法,只能看源代码 https://github.com/mongoid/mongoid/blob/master/lib/mongoid/timestamps/updated.rb 发现其代码中有,

1
2
set_callback :create, :before, :set_updated_at
set_callback :update, :before, :set_updated_at

联想rails中方法,需要在方法中,特定的方法重新设置此内容, 如

1
2
3
4
5
6
7
8
9
10
11
def skip_auto_updated_at(&block)
  User.skip_callback(:update, :before, :set_updated_at)
  yield
  User.set_callback(:update, :before, :set_updated_at)
end

def update_some_column(attrs)
  skip_auto_updated_at do
    update_attributes(attrs)
  end
end

Comments