我刚刚更新尝试导轨3,使用RVM红宝石1.9.2-P0。

当我跑我的黄瓜规格然后我得到以下奇怪的警告

/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匹配正针对到UTF-8-〜应变

问题是在机架和具有显然已经在1.3.0被固定但您可能无法升级到它。

所以,直到你可以升级到1.3.0架,使用以下内容创建文件config/initializers/rack_hotfix.rb

# 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.2.1,忽略机架1.3,即使你把它安装。所以我认为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