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::unscapeを使用してみてください。これにより、%エンコードされた値が処理されます。乾杯!

于 2010-12-14T18:42:18.850 に答える