質問

私は試しに更新することはルビー1.9.2-P0とRVMを使用して、3レールます。

私はその後、私のキュウリのスペックを実行すると、私は奇妙な警告を以下の取得

/home/ubuntu/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string

/home/ubuntu/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string

/home/ubuntu/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string

私のバンドルが含まれている以下の宝石...

Using rake (0.8.7) 
Using abstract (1.0.0) 
Using activesupport (3.0.0) 
Using builder (2.1.2) 
Using i18n (0.4.1) 
Using activemodel (3.0.0) 
Using erubis (2.6.6) 
Using rack (1.2.1) 
Using rack-mount (0.6.13) 
Using rack-test (0.5.4) 
Using tzinfo (0.3.23) 
Using actionpack (3.0.0) 
Using mime-types (1.16) 
Using polyglot (0.3.1) 
Using treetop (1.4.8) 
Using mail (2.2.5) 
Using actionmailer (3.0.0) 
Using arel (1.0.1) 
Using activerecord (3.0.0) 
Using activeresource (3.0.0) 
Using bundler (1.0.0) 
Using culerity (0.2.12) 
Using nokogiri (1.4.3.1) 
Using ffi (0.6.3) 
Using json_pure (1.4.6) 
Using rubyzip (0.9.4) 
Using selenium-webdriver (0.0.28) 
Using capybara (0.3.9) 
Using configuration (1.1.0) 
Using diff-lcs (1.1.2) 
Using trollop (1.16.2) 
Using gherkin (2.1.5) 
Using term-ansicolor (1.0.5) 
Using cucumber (0.8.5) 
Using cucumber-rails (0.3.2) 
Using database_cleaner (0.5.2) 
Using launchy (0.3.7) 
Using mysql2 (0.2.3) 
Using rspec-core (2.0.0.beta.20) 
Using rspec-expectations (2.0.0.beta.20) 
Using rspec-mocks (2.0.0.beta.20) 
Using rspec (2.0.0.beta.20) 
Using yard (0.6.0) 
Using pickle (0.4.2) 
Using thor (0.14.0) 
Using railties (3.0.0) 
Using rails (3.0.0) 
Using rspec-rails (2.0.0.beta.20) 
Using spork (0.8.4) 
Using webrat (0.7.1) 
これらの警告を取り除くためにどのように誰もが知っていますか?そして、彼らはどこから来ている?

役に立ちましたか?

解決

これまで利用できる良い解決策は、私はエンリコStahnでブログの記事で見つけたことがあります: http://blog.enricostahn.com/warning -regexpマッチ-N-に対して対UTF-8-strin

問題がラック内にあり、明らかに既に 1.3.0にに固定されていますが、あなたはまだそれにアップグレードすることができない場合があります。

ですから、次の内容のファイルconfig/initializers/rack_hotfix.rbを作成し、1.3.0をラックにアップグレードできるまで

# TODO: Can be removed after updating to rack 1.3.0
module Rack
  module Utils
    def escape(s)
      CGI.escape(s.to_s)
    end
    def unescape(s)
      CGI.unescape(s)
    end
  end
end

これは私のために魅力を働いていたし、私は、ラックがアップグレードされていたら、初期化子をドロップするように穏やかリマインダとして私のRSpecのファイルの上に保留中のテストでそれを補足します。

describe ApplicationController do
  ...
  it "should not include the rack_hotfix.rb initializer after upgrading to rack 1.3.0"

end

他のヒント

を参照してください:

https://github.com/jnicklas/capybara/issues/87 https://github.com/jnicklas/capybara/issues/243する

問題のいくつかの議論のための

。解像度は、カピバラとラックの両方が良い解に到達するためにいくつかのことを変更するために必要なことのようです。

私が正しく理解していた場合には、1.3と1.0カピバラが問題を解決する必要がありますラック。しかし現時点では、Railsの3.0.8はまだあなたがそれをインストールしている場合でも、ラック1.3を無視して、ラック〜> 1.2.1が必要です。私はRailsが(特にactionpack)きれいな修正を持っているために、その依存関係をアップグレードする必要がありますだと思うので。

features/support内のファイルにこれを追加するかenv.rbファイルに入れます:

# Stop endless errors like
# ~/.rvm/gems/ruby-1.9.2-p0@global/gems/rack-1.2.1/lib/rack/utils.rb:16: 
# warning: regexp match /.../n against to UTF-8 string
$VERBOSE = nil
私は最初の場所でそれらを引き起こしているのかわからないのですけれども、

これは、これらの警告を抑制します。私はまた、それらを取得しています。

この問題の世話をする「escape_utils」と呼ばれる宝石があります。ここでは、問題を説明する記事へのリンクのです。

たぶん、あなたのスクリプトは?ASCIIまたはUTF-8とは別の形式でエンコードされている。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top