如何使用ActiveResource管理网址编码?

时间:2010-12-14 18:33:54

标签: ruby-on-rails activeresource

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

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

例如,以下关于ActiveResource模型的查询Person ...

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

生成以下网址

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 个答案:

答案 0 :(得分:1)

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