2009-06-28 56 views
1

我是新來的rails,所以我爲我的無知道歉。nomethoderror for rack :: utils :: escape

我的方法之外設定恆定的一類:

PARAM = { #... => ... 
      'field' => escape('somethingwith/slashes') 
} 

,並獲得NoMethodError:未定義的方法「逃離」

我試過架:: utils的::逃生和機架:: Utils.escape代替,但兩者都不起作用。

在此先感謝。

回答

2

您可以使用CGI.escape。

# lib/my_foo 
class MyFoo 
    THINGS = { 
    :hi => CGI.escape("well hello, there.") 
    } 
end 

如果您在Rails環境之外執行此操作,則您還必須使用require "cgi"

+0

給了我同樣的錯誤。未定義的方法'轉義'爲# 任何想法? – user117046 2009-06-28 05:53:14

2

您使用的是哪個Rails版本。如果你使用Rails 2.3,你應該有Rack。看看這個:

>> require "rack" # Rails 2.3 and above has already done this 
=> true 
>> Rack::Utils.escape("the quick brown fox") 
=> "the+quick+brown+fox" 

如果您使用的是2.3以前版本的Rails,您需要自行安裝並需要Rack。

sudo gem install rack 

或者,如果你從內部管理Rails的寶石,將下面的行添加到您的environment.rb初始化塊中:

config.gem "rack", "1.0.0" 

一旦升級到Rails 2.3或更高版本,將能夠使用Rails內置的Rack版本,並且您可以刪除config.gem行。