Tôi cần tạo một hàng trong cả bảng và bảng người dùng ... Tôi chỉ cần biết cách xử lý trong trường hợp giao dịch bị lỗi.Xử lý lỗi trong giao dịch ActiveRecord?
@ticket.transaction do
@ticket.save!
@user.save!
end
#if (transaction succeeded)
#.....
#else (transaction failed)
#......
#end
Trên một lưu ý bên Tôi chỉ muốn cảm ơn tất cả những ai tham gia vào stack overflow để giúp một nhà thiết kế chương trình học thêm ... Tôi đánh giá cao thời gian bạn kẻ đưa ra trong ngày của bạn để trả lời câu hỏi n00b như này :)
Cảm ơn rất nhiều Matt, tôi đánh giá cao nó :) – Kevin
Giao dịch giống như giao dịch trong đoạn đầu tiên (không có ngoại lệ ném), không phải là giao dịch Rails. Một giao dịch như giao dịch trong đoạn mã thứ hai sẽ giải cứu tất cả ngoại lệ (rescue => e), xử lý lỗi và có thể tăng cùng một ngoại lệ một lần nữa. – Ando
Xin lỗi Ando, nhưng rõ ràng là giao dịch ActiveRecord, được chứng minh bằng phương thức "giao dịch". Điểm nổi bật của giao dịch là hành động đầu tiên (lưu vé) được cuộn lại nếu lần thứ hai không thành công. Đây là một ví dụ rất cơ bản cho một nhà phát triển mới ... rõ ràng một người sẽ thay thế nhận xét bằng cách xử lý lỗi. Cảm ơn bạn đã chia sẻ quan điểm về xử lý lỗi, nhưng ví dụ này đến từ "Phát triển Web nhanh với Rails", được viết bởi tác giả ban đầu của Rails! Vì vậy, tôi sẽ có ngoại lệ tại đặc điểm của bạn về một cái gì đó mà không ném một ngoại lệ như không Rails – MattMcKnight