Tôi vô cùng bối rối về một xung quanh. Họ làm việc như thế nào? Ai đó có thể vui lòng cung cấp cho tôi một ví dụ/giải thích về cách họ làm việc không?Gọi hàm around_action hoạt động như thế nào? Cần giải thích
Đây là trích dẫn từ cuốn sách 4 Agile Phát triển Web của tôi:
Khoảng callbacks quấn thực hiện hành động. Bạn có thể viết xung quanh gọi lại theo hai kiểu khác nhau. Đầu tiên, gọi lại là một đoạn mã duy nhất. Mã đó được gọi trước khi hành động được thực hiện. Nếu mã gọi lại gọi ra lợi nhuận, hành động được thực thi. Khi hành động hoàn tất, mã gọi lại tiếp tục thực hiện. Do đó, mã trước khi sản lượng giống như một lời gọi hành động trước và mã sau khi sản lượng là cuộc gọi lại sau hành động. Nếu mã gọi lại không bao giờ gọi năng suất. hành động không phải là chạy-điều này là giống như có một trở lại trước khi hành động gọi trở lại sai.
Tôi sắp xếp nó khi đọc. Dưới đây là ví dụ từ Hướng dẫn Rails
class ChangesController < ApplicationController
around_action :wrap_in_transaction, only: :show
private
def wrap_in_transaction
ActiveRecord::Base.transaction do
begin
yield
ensure
raise ActiveRecord::Rollback
end
end
end
end
Vậy điều gì đang xảy ra ở đây? Có ActiveRecord :: Base.transaction bắt đầu như là "trước" một phần và nâng cao ActiveRecord :: Rollback là "sau khi" một phần? Phương pháp này là gì? Nó là chương trình? Cuối cùng điều gì sẽ khiến phương thức lợi nhuận thất bại khiến toàn bộ cuộc gọi lại bị lỗi? Nó sẽ là kết xuất của hành động hiển thị? Tôi không hiểu. Xin vui lòng giúp đỡ.