的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(当我用手火了请求工作)。
尝试
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
试了一下,得到一个奇怪的错误**未定义的方法'收集!对于#
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"})
任何人都知道一个更清洁的解决方案吗?
更新了我的答案 – Fivell 2012-02-21 09:41:07