Gần đây chúng tôi đã có một vấn đề trong đó, sau khi một loạt các cam kết đã xảy ra, một quá trình phụ trợ không chạy được. Bây giờ, chúng tôi là những cậu bé và cô bé ngoan và chạy rake test
theo sau mỗi lần đăng ký, nhưng do một số điều kỳ lạ trong việc tải thư viện của Rails, nó chỉ xảy ra khi chúng tôi chạy nó trực tiếp từ Mongrel trong chế độ sản xuất.
Tôi đã theo dõi lỗi và đó là do đá quý Rails mới ghi đè một phương thức trong lớp String theo cách phá vỡ một sử dụng hẹp trong mã Rails thời gian chạy.
Dù sao, câu chuyện dài, có cách nào, trong thời gian chạy, để hỏi Ruby nơi một phương thức đã được xác định? Một cái gì đó như thế whereami( :foo )
trở lại /path/to/some/file.rb line #45
? Trong trường hợp này, nói với tôi rằng nó được định nghĩa trong Chuỗi lớp sẽ không có ích, bởi vì nó bị quá tải bởi một số thư viện.
Tôi không thể đảm bảo nguồn sống trong dự án của mình, vì vậy, việc grepping 'def foo'
không nhất thiết phải cung cấp cho tôi những gì tôi cần, chưa kể nếu tôi có nhiều def foo
, đôi khi tôi không biết cho đến khi nào tôi có thể sử dụng.