2016-07-05 40 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