基本形

begin
  ActiveRecord::Base.transaction do
    .
    .
    raise 'ロールバックします'
  end

  p 'コミット' # トランザクション処理を確定
rescue => e
  p 'ロールバック' # トランザクション処理を戻す
end

ActiveRecord::RecordInvalidでrescue

http://api.rubyonrails.org/classes/ActiveRecord/RecordInvalid.html

begin
  complex_operation_that_internally_calls_save!
rescue ActiveRecord::RecordInvalid => invalid
  puts invalid.record.errors
end

References

results matching ""

    No results matching ""