2011-01-10 36 views
10

Gần đây tôi đã nâng cấp từ Rails 2 lên Rails 3 và tôi đang cố gắng root tất cả các mã mà tôi có thể không dùng nữa. Cách tôi đang làm điều này chỉ là lướt xung quanh một bản sao của trang web của tôi đang chạy trên một máy phát triển, và nhìn vào đầu ra từ giao diện điều khiển để cảnh báo.Ruby on Rails: Xử lý cảnh báo không dùng nữa vì lỗi hoặc tìm mã không dùng nữa?

Có cách nào khiến Rails xử lý cảnh báo không dùng nữa do lỗi hoặc tìm mã không dùng nữa hiệu quả hơn không?

Trả lời

11

Bạn có thể tùy chỉnh hành vi của các cuộc gọi không được chấp nhận bằng cách đặt ActiveSupport::Deprecation.behavior. Điều này sẽ được đặt thành một số Proc chấp nhận một tin nhắn và một callstack, ví dụ: bạn có thể làm:

ActiveSupport::Deprecation.behavior = Proc.new { |message, callstack| 
    raise message + "\n" + callstack.join("\n ") 
} 

Nếu bạn có các kiểm tra tự động cho ứng dụng của bạn, đây là vô giá khi nâng cấp phiên bản Rails đang được sử dụng.

+0

Trường hợp 'Proc' phải được đặt ở đâu? –

+1

@ Iván bạn có thể đặt tệp này vào một tệp riêng trong 'config/initializers', ví dụ: 'deprecation.rb'. Cũng lưu ý trong các phiên bản mới hơn của Rails, nếu bạn muốn đưa ra một ngoại lệ đối với các cuộc gọi không được chấp nhận, bạn có thể sử dụng 'ActiveSupport :: Deprecation.behavior =: raise' và không cần phải tự viết' Proc'. – mikej

+0

Nó rất rõ ràng, đặc biệt là vì tôi đang sử dụng RoR 5. Cảm ơn @mikej –

Các vấn đề liên quan