There's an echo in my head

日々のメモ。

ActiveRecordのwith_lockはトランザクションも開始してくれる

ソースを見るとトランザクションを開始してからロックしてくれるので、別途transactionを呼ぶ必要はない。

# File activerecord/lib/active_record/locking/pessimistic.rb, line 69
def with_lock(lock = true)
  transaction do
    lock!(lock)
    yield
  end
end

確かにトランザクション内じゃないとブロックとともにロックする意味が無いので、当たり前っちゃあ当たり前か。ドキュメントにも書いてあるし。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。