私はRubyとRailsが初めてです。Java の @Transactional アノテーションのようなDeclarative トランザクション管理を Rails で使用したいと考えています。
Railsで「宣言型トランザクション管理」を使用する方法を知っている人はいますか?
私はRubyとRailsが初めてです。Java の @Transactional アノテーションのようなDeclarative トランザクション管理を Rails で使用したいと考えています。
Railsで「宣言型トランザクション管理」を使用する方法を知っている人はいますか?
Ruby には注釈のようなものはありませんが、メタ プログラミングを使用して同様のものを自分で構築できます。private、protected、および public も単なるメソッドであり、キーワードではないことに注意してください。あなたは自分自身に似たものを構築することができます
transactional
def my_transactional_method
puts "some stuff happens here"
end
たぶん、この宝石https://github.com/fredwu/ruby_decoratorsがそれを助けてくれます。またはさらに良いhttps://github.com/michaelfairley/method_decorators、トランザクションのデコレーターを実装するサンプルもあります。
私はJavaのバックグラウンドではありませんが、 Declarative transaction managementについて読みました。レールでは
ActiveRecord::Base.transaction do
#do some model operation
#do some model operation
end
ここでは、両方の操作が成功した場合にのみ、データベースへのコミットが実行されます。一方が失敗した場合、操作はデータベースにコミットされません。