2

でWebサービスを消費し、私は次のエンドポイントがある(ActiveResourceを使用して)Webサービスを消費したいと思います:ルビー/ Railsのちょうどレールを使い始めるActiveResource

GET /ユーザーをsome_header = XYZ

これは私のActiveResourceクラスです:

class User < ActiveResource::Base 
     self.site = "url" 
     set_collection_name 'user' #avoid pluralization within the url 
    end 

どのように上記のエンドポイントの呼び出しは、今のように見えるのでしょうか?

私は

User.get('', headers={:some_header => "XYZ"}) 

を試してみましたが、私は(私は手でそれを発射する場合、要求は動作します)404を取得しています。

+0

私の答え – Fivell

答えて

1

あなたのパスにフォーマットを避けたい場合は、あなたが

def collection_path(prefix_options = {}, query_options = nil) 
     prefix_options, query_options = split_options(prefix_options) if query_options.nil? 
     "#{prefix(prefix_options)}#{collection_name}#{query_string(query_options)}" 
     end 
+0

を更新**は未定義のメソッド '収集奇妙なエラーを取得し、それを試してみました!」 # ** 。ログファイルを見ると、正しい要求が構築されているようです。 –

+0

https://github.com/rails/rails/issues/2318 – Fivell

1

にベースcollection_path方法

def collection_path(prefix_options = {}, query_options = nil) 
     prefix_options, query_options = split_options(prefix_options) if query_options.nil? 
     "#{prefix(prefix_options)}#{collection_name}.#{format.extension}#{query_string(query_options)}" 
    end 

をovverideでき

User.all(:params=>{:some_header => "XYZ"}) 

を試してみては問題を発見しました。私は私のgetメソッドで空のパスを指定しますが、Railsは内部的に「.json」を付加し、このように構成されたURLは、私はそれが

た固定方法

/user/.json?some_header=XYZ」

ました誰でもクリーンな解決策を知っている

 User.collection_name = "" 
    User.get('user', headers={:some_header => "XYZ"}) 

関連する問題