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