Tôi đang nâng cấp ứng dụng Rails của tôi để làm việc với Ruby 1,9 và tôi tiếp tục lỗi gặp phải như thế này:"Mô-đun ẩn danh không có tên được tham chiếu bởi" thực sự có nghĩa là gì?
Anonymous modules have no name to be referenced by
/home/foo/.gem/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:585:in `to_constant_name'
/home/foo/.gem/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:391:in `qualified_name_for'
/home/foo/.gem/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:104:in `rescue in const_missing'
/home/foo/.gem/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:94:in `const_missing'
/home/foo/app/config/environment.rb:66:in `block in <top (required)>'
etc.
Google tìm thấy tất cả các loại hits cho điều này, nhưng mỗi người trong số họ gắn liền với một sửa chữa cụ thể cho một cụ thể đá quý hoặc ứng dụng. Không ai trong số họ giải thích những gì thông điệp thực sự có nghĩa là.
- "Mô-đun ẩn danh" là gì?
- Thông báo lỗi này đến từ đâu? (Bản dịch của Ruby?)
- Điều gì khác biệt về Ruby 1.9 gây ra điều này? (Đường ray 2.3.8 với Ruby 1.8.7 không gặp phải điều này.)
- Cách chung/thích hợp để sửa lỗi này là gì?
Dòng 66 của environment.rb là cấu hình cho super_exception_notifier (phiên bản cũ, 2.0.8):
ExceptionNotifier.configure_exception_notifier do |config|
config[:sender_address] = %("Foo" <[email protected]>)
config[:exception_recipients] = %w([email protected])
config[:skip_local_notification] = false
end
Từ những gì tôi có thể nói, ExceptionNotifier là undefined, và ActiveSupport đang cố gắng một cách kỳ diệu tải nó, nhưng thất bại và sau đó thất bại một lần nữa cố gắng để in một thông báo lỗi tốt đẹp.
kiểm tra các xung đột tên trong tên phương thức/mô-đun trong ứng dụng của bạn bằng đường ray. lỗi tối nghĩa thường xảy ra khi nội dung mã của bạn va chạm với AR. – glebm