2009-06-28 2 views
1

Я новичок в рельсах, поэтому извиняюсь за свое невежество.nomethoderror for rack :: utils :: escape

Я устанавливаю константу в классе вне метода:

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

и получить NoMethodError: неопределенный метод 'побег'

Я пытался Rack :: Utils :: бежать и стойки :: Utils.escape вместо этого, но оба не работают.

Заранее спасибо.

ответ

2

Вы можете использовать CGI.escape.

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

Если йо сделать это вне среды Rails, вам придется require "cgi", а также.

+0

дает мне ту же ошибку. undefined метод 'escape' для # любые мысли? – user117046

+0

вам потребуется «CGI», чтобы вы могли использовать метод escape. – Geo

+0

Это потому, что вы должны использовать 'CGI.escape', а не' escape'. Посмотрите внимательно на фрагмент;) –

2

Какую версию Rails вы используете. Если вы используете Rails 2.3, вы должны иметь стойку. Проверьте это:

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

Если вы используете версию Rails старше 2.3, вам необходимо установить и требуют стойку самостоятельно.

sudo gem install rack 

Или, если вы управляете самоцветы внутри Rails, добавьте следующую строку в environment.rb внутри Initializer блока:

config.gem "rack", "1.0.0" 

После перехода на Rails 2.3 или выше, вы 'можно использовать версию встроенной Rack с Rails, и вы можете удалить строку config.gem.

Смежные вопросы