Tôi đang cố gắng sử dụng các sàng lọc ruby để áp dụng móc treo.Tinh chỉnh và móc của Ruby
Tôi muốn tránh vá khỉ. Khi khỉ vá nó sẽ làm việc như vậy
ActiveRecord::Base.class_eval do
after_find do
# do something with
my_method
end
def my_method
# something useful
end
end
tôi đã có thể để có phương pháp lớp học bằng cách làm một cái gì đó giống như ví dụ:
module ActiveRecordRefinements
refine ActiveRecord::Base.singleton_class do
def my_method
#something cool
end
end
end
Nhưng tôi không thể chạy các móc. Tôi đã thử sử dụng self.used(klass)
nhưng dường như không thể nhận cú pháp vừa phải.
Mọi trợ giúp đều được chào đón.
Cảm ơn.
Bạn không cần phải gọi '# singleton_class' trên' ActiveRecord :: Base' vì sàng lọc là đơn. – Nathan
Tôi đang cố gắng thêm vào DSL của AR. Một cái gì đó như '' ' lớp Foo
Max
Có một dòng tiền phạt giữa việc vá khỉ và tiêm phụ thuộc. Thông thường, việc vá khỉ được định nghĩa là xác định lại hành vi cốt lõi theo cách không nhất thiết phải làm việc với các phiên bản sau của lõi. Một mô hình tiêm phụ thuộc sạch hơn cố gắng tránh xung đột và duy trì một dấu chân tối thiểu. – tadman