2010-12-14 6 views
0

ActiveResourceでURLエンコーディングを管理する方法はありますか?具体的には、電子メールアドレスをパラメータとして渡す方法を探しています。URLエンコーディングをActiveResourceでどのように管理できますか?

現在、@のシンボルにURLが%40にエンコードされているため、クエリが失敗し、リモートアプリケーションの検索が失敗します。例えば

、ActiveResourceモデルPersonで次の問合せ...

Person.all(:from => :remote_find_by_email, :params => {:email => "[email protected]") 

は、以下のURL

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

代わりを作成し、リモートアプリが復号化するためにやるべき何かがありますルックアップを実行する前にパラメータ? eks

UPDATE

おかげで、私は次のメソッドを追加し、リモートアプリのコントローラにフィルタ前:

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

ことを、リモート側でCGI ::アンエスケープを使用してみてください%エンコードされた値を処理する必要があります。乾杯!

+0

ありがとうございます! –

関連する問題