Кнопка отправки Capybara - несовместимая кодировка соответствия регулярному выражению - PullRequest
0 голосов
/ 11 апреля 2011

form.erb

<%= form_for @search do |f| %>
  <%= f.text_field :name %>
  <%= f.submit 'submit' %>
<% end %>

searches_spec.rb

require 'spec_helper'

describe SearchesController do 
  it "should do something" do
    visit searches_path

    page.fill_in 'search_name', :with => 'oak'

    click_button 'submit'
  end
end

выход

Failure/Error: click_button 'submit'
 Encoding::CompatibilityError:
   incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
 # ./spec/integration/searches_spec.rb:16:in `block (2 levels) in <top (required)>'

Попытка просто отправить форму на Capybara, но получаю эту ошибку. Есть идеи?

рельсы 3.1, капибара 0.4.1.2, rspec-рельсы 2.5.0

1 Ответ

2 голосов
/ 15 апреля 2011

Как отметил mculp в комментариях, это действительно упомянутая ошибка в Rack .

Чтобы исправить это локально, добавьте следующее в ваш spec_helper.rb или env.rbдля огурца (в любом месте после загрузки стойки).

module Rack::Utils
  def escape(s)
    CGI.escape(s.to_s)
  end
end
...