nomethoderror для стойки :: utils :: escape - PullRequest
1 голос
/ 28 июня 2009

Я новичок в рельсах, поэтому я прошу прощения за свое невежество.

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

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

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

Я попробовал Rack :: Utils :: escape и Rack :: Utils.escape, но оба не работают.

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

Ответы [ 2 ]

2 голосов
/ 30 июня 2009

Какую версию 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"

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

sudo gem install rack

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

config.gem "rack", "1.0.0"

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

2 голосов
/ 28 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...