Как можно управлять кодировкой URL с помощью ActiveResource? - PullRequest
0 голосов
/ 14 декабря 2010

Есть ли способ управлять кодированием URL с помощью ActiveResource?В частности, я ищу способ передать адрес электронной почты в качестве параметра.

В настоящее время мой запрос не выполняется, поскольку символ @ получает URL, закодированный в %40, что приводит к сбою поиска в удаленном приложении.

Например, следующий запрос в модели ActiveResourcePerson

Person.all(:from => :remote_find_by_email, :params => {:email => "john@example.com")

Создает следующий URL

http://example.com/people/remote_find_by_email.xml?email=john%40example.com

Альтернативно, есть ли что-то, что удаленное приложение должно сделать для декодирования параметра перед выполнениемпоиск?

ОБНОВЛЕНИЕ

Благодаря eks , я добавил следующий метод и перед фильтрацией на контроллере в удаленном приложении:

before_filter :cgi_unescape_params, :only => [:remote_find_by_email]

private

  def cgi_unescape_params
    params.each { |k, v| params[k] = CGI.unescape(v) }
  end

1 Ответ

1 голос
/ 14 декабря 2010

Попробуйте использовать CGI :: unescape на удаленном конце, который должен позаботиться о любом% кодированном значении. Ура!

...