ソースを見るとトランザクションを開始してからロックしてくれるので、別途transaction
を呼ぶ必要はない。
# File activerecord/lib/active_record/locking/pessimistic.rb, line 69 def with_lock(lock = true) transaction do lock!(lock) yield end end
確かにトランザクション内じゃないとブロックとともにロックする意味が無いので、当たり前っちゃあ当たり前か。ドキュメントにも書いてあるし。