2016-07-05 78 views
0

我可以鎖定ActiveRecord對象而不重新加載嗎?Rails ActiveRecord:鎖無需重新加載

user = User.find(1) 
=> #<User id: 1, name: "Ed" ...> 
user.name = "Joe" 
=> "Joe" 
user.lock! 
=> #<User id: 1, name: "Ed" ...> 

我可以發送原始SQL「SELECT ... FOR UPDATE」,但它看起來不太乾淨。

回答

0

我最終加入方法ActiveRecord::Base

ActiveRecord::Base.class_eval do 
    def lock_without_reload! 
    self.class.lock(true).find(id) 
    true 
    end 
end