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