Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Khi sử dụng transaction trong RoR, có lúc ta không cần phải gọi câu lệnh ActiveRecord::Rollback , cũng có lúc ta phải gọi nó. Xét ví dụ: self.transaction do first_operation begin second_operation call_other_function rescue Exception => e #deal with the error raise ActiveRecord::Rollback #force a rollback end end Nếu bỏ raise ActiveRecord::Rollback : Mọi thay đổi tới DB xảy ra ở second_operation và call_other_function đều được r...

Cách sử dụng exception hiệu qủa trong ruby on rails

Cách sử dụng exception hiệu qủa trong ruby on rails

    1. Khi nào nên xử lý exception. Nguyên tắc: Ngoại lệ không nên được dự đoán biết trước (Exceptions should not be expected) Một hàm tạo user cơ bản được viết như sau: def create @user = User.new params[:user] if @user.save redirect_to user_path(@user) else flash[:notice] = 'Unable to create user' render :action => :new end end Nhưng có người lại viết nó một cách ngắn gọn: def create @user = User.new p...