0

有没有办法使用 ActiveResource 管理 URL 编码?具体来说,我正在寻找一种将电子邮件地址作为参数传递的方法。

目前我的查询失败,因为@符号将 URL 编码为%40,导致远程应用程序的查找失败。

例如,以下关于 ActiveResource 模型的查询Person……</p>

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
4

1 回答 1

1

尝试在远程端使用 CGI::unescape,它应该处理任何 % 编码值。干杯!

于 2010-12-14T18:42:18.850 回答