Có lệnh nào trong số debugger
hoặc ruby-debug
để nhận danh sách tất cả các đá quý và/hoặc plugin được tải trong bộ nhớ cho quy trình Rails không? Tôi hiểu chỉ có đá quý 'require
' được tải nhưng tôi muốn nhanh chóng xem những gì đã được tải trong thời gian chạy.Có cách nào để biết đá quý và plugin nào được tải trong thời gian chạy cho quy trình Rails không?
Trả lời
này sẽ giúp bạn tất cả mọi thứ được nạp thông qua rubygems:
Gem.loaded_specs.keys
Tôi không biết một cách phổ biến để xem những đường ray plugin được nạp, bạn có thể nhìn vào nguồn cho Rails :: Initializer (pre 3.0) & tìm hiểu phiên bản đường ray của bạn đang làm gì. Hy vọng rằng bạn biết plugin nào nên đang tải & có thể xác nhận rằng từ bảng điều khiển khi gỡ lỗi.
Với phiên bản:
Gem.loaded_specs.values.map {|x| "#{x.name} #{x.version}"}
Tôi nghĩ rằng câu trả lời ở trên sử dụng Gem.loaded_specs.keys
hiển thị các đá quý trên "con đường tải".
Tuy nhiên, ban đầu bạn được hỏi về đá quý được tải vào bộ nhớ và câu trả lời this có thể hữu ích hơn.
Không, các câu trả lời khác chỉ liệt kê đúng các đá quý cần thiết. Tôi đã thử nghiệm điều này với ruby 2.3. Nhưng 1 cho câu trả lời của bạn vì '$ LOADED_FEATURES' khá hữu ích. – akostadinov
Tôi nghĩ @sreid có một điểm quan trọng trong câu trả lời của mình bên dưới, nếu tôi hiểu những gì đang xảy ra chính xác. Số lượng đá quý trên đường dẫn tải không nhất thiết phải bằng số lượng đá quý được nạp vào bộ nhớ. Ví dụ: nếu các nhóm cụ thể bị loại trừ khỏi trong một 'Bundler.require', sẽ không' Gem.loaded_specs' vẫn hiển thị chúng? –