的Ruby/Rails - 消费web服务与的ActiveResource

问题描述:

刚刚开始使用Rails,我想消耗Web服务(使用的ActiveResource)具有下列端点:的Ruby/Rails - 消费web服务与的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 2012-02-21 09:41:07

尝试

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

如果你想避免在您的路径格式,你可以ovveride基地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 

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

试了一下,得到一个奇怪的错误**未定义的方法'收集!对于# ** 。当我查看日志文件时,似乎正确的请求是通过构造的。 – 2012-02-15 12:39:13

+0

https://github.com/rails/rails/issues/2318 – Fivell 2012-02-15 13:10:22

发现问题。虽然我指定我的GET方法的空路径,Rails的内部追加“以.json”,所以构造URL是

/user/.json?some_header=XYZ”

我固定的方式,它是

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

任何人都知道一个更清洁的解决方案吗?