2009-08-12 44 views
5

Tôi có một bước dưa chuột mà gần đây đã bắt đầu thất bại khi một số   được thêm vào bố cục của tôi. Nếu tôi lấy số  , tất cả các bài kiểm tra của tôi đều đã qua. Khi tôi đưa nó trở lại, mọi thử nghiệm sử dụng phương pháp click_link được cung cấp bởi WebRat đều không thành công với thông báo sau:Dưa chuột và/hoặc Webrat ghét  ?

And he follows 'Unsubscribe' 
    incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError) 
    (eval):3:in `click_link` 
    (eval):2:in `click_link` 
    /path_to_project/webrat_steps.rb:19:in `/^(I|he|she) follows? '([^\"]*)'$/' 
    features/manage_subscriptions.feature:59:in `And he follows 'Unsubscribe'' 

Có ai có đề xuất nào không?

Trả lời

5

Tôi đã gặp vấn đề tương tự trong Ruby 1.9 và Rails 2.3.2, để làm cho nó hoạt động, tôi phải thực hiện các thay đổi sau trong đá quý webrat.

Trong lib/webrat/core/locators/link_locator.rb tôi đã phải thay đổi:

def replace_nbsp(str) 
    str.gsub([0xA0].pack('U'), ' ') 
end 

để

def replace_nbsp(str) 
    if str.respond_to?(:valid_encoding?) 
    str.force_encoding('UTF-8').gsub(/\xc2\xa0/u, ' ') 
    else 
    str.gsub(/\xc2\xa0/u, ' ') 
    end 
end 

Cũng có một bản vá submited để webrat Ticket 260, nhưng nó không làm việc cho tôi vì vậy tôi đã phải làm các việc trên . Hi vọng điêu nay co ich.

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