/ /読み取り用ロックモデル - ruby​​-on-rails、ruby、rails-activerecord

読み込み用のロックモデル - ruby​​-on-rails、ruby、rails-activerecord

ある ActiveRecord トランザクション、読み取りのためにレコード/テーブルをロックするための何らかの方法が必要なので、トランザクションが実行されている間、ユーザーはこのテーブルから選択することができませんでした。

基本的に、私はこのようなものが必要です

System.transaction do
s = System.first
# Something to lock the table or selected record for reading
s.update_attributes(some_params)
end

その方法について誰かが考えを持っていますか?

回答:

回答№1は1

それはあなたが探しているようです 悲観的ロック。あなたは lock スコープのような方法。さらに、あなたはbang-versionを使うべきです update_attributes! 問題が発生したときに例外を発生させるために。

System.transaction do
s = System.lock.first
s.update_attributes!(some_params)
end