Transaction(Editing)
How about of transaction of rails
As other programming language has, rails has it too.
Block SQL statement
ActiveRecord::Base.transaction do Book.create(:title => 'A') Book.create(:title => 'B') Book.create(:title => '').authors.create(:last_name => 'X') end
Use ActiveRecord::Base class static method.
Example2
def transactiontest Item.transaction do # Model i1 = Item.new(name: 'iphone', category: 'apple', price: '800' date: '2014-10-12']) i1.save! raise 'Exception' # go rescue i2 = Item.new(name: 'ipad', category: 'apple', price: '600' date: '2014-10-22']) i2.save! end render text: 'successs' rescue => e render text :e.message end
1 model base
Transaction Level
- :read_uncommited
- :read_commited
- :repeatable_read
- :serializable
How to set transaction level
Use isolation option
Item.transaction(isolation: :repeatable_read) do end