2009-09-22 23 views
5

Tôi vừa cập nhật lên Ruby 1.9.1 và gần như tất cả rspec của tôi bị hỏng khiến tôi "không thể sửa đổi đối tượng cố định". Ngay cả mã mẫu Rspec từ một rspec_controller tạo ra không thành công.Ruby 1.9.1 với rspec "không thể sửa đổi đối tượng đông lạnh"

RuntimeError in 'DownloadsController should use DownloadsController' 
can't modify frozen object                                       
/usr/local/lib/ruby19/1.9.1/timeout.rb:44:in `timeout' 


Generated by the following code: 

it "should use DownloadsController" do 
    controller.should be_an_instance_of(DownloadsController) 
end 

Có ai giúp được không?

+0

Bạn có theo dõi ngăn xếp bạn có thể đăng không? –

+0

Thật không may, tôi không thể nhận được bất kỳ dấu vết ngoại trừ những gì ở trên ... Ngay cả với --trace – xto

Trả lời

0

Hãy thử mở /usr/local/lib/ruby19/1.9.1/timeout.rb và thay thế dòng 44 như sau:

begin 
    return yield(sec) if sec == nil or sec.zero? 
rescue => e 
    puts e.backtrace.join("\n") 
    raise e 
end 

Mặc dù điều này dường như lẻ, trong một số trường hợp tôi đã tìm thấy rằng điều này mang lại cho tôi thông tin chi tiết hơn về nguồn gốc thực sự của vấn đề. Nếu bạn vẫn không biết cách khắc phục sự cố, hãy dán kết quả của bạn vào đây và có thể nó sẽ giúp chúng tôi theo dõi vấn đề.

6

Bạn có sử dụng bạn không đang cố gắng khai báo cái gì đó là số không.

Trong 1,8 nil không bị đóng băng. Tuy nhiên nó được đông lạnh trong ruby ​​1.9.

+0

Thhanks cho đầu vào. Tôi sẽ thử nó vào cuối tuần này. Tôi đã được gửi về một hợp đồng và đưa ra dự án Rails của tôi. – xto

+0

đây phải là câu trả lời được chấp nhận. – professormeowingtons

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