ActiveResource 顶级常量问题;查询路径间歇性不同。

ActiveResource toplevel constant issue; query path is different intermittently.

目前我遇到了上述问题。

根据我的理解,这是 rails 自动加载以及各种 class 命名空间标准的持续问题。

在没有任何范围的情况下检索 product/products 的产品。

# product.rb
class Product < ActiveResource::Base
  self.site = "#{end_point}/api/v2"
  ....
end

Market::Product 为我们提供了在市场范围内寻找产品的接口,类似于产品。

# market/product.rb
class Market
  class Product < ::Product
    self.site = "#{end_point}/api/v2/markets/:market_name"
    ....
  end
end

控制器可以调用市场产品对象,但return对象只是产品

# market_product_controller.rb
class MarketProductController < ApplicationController
  def index
    @object = ::Market::Product.all
  end
  ....
end

在 api 上,它们是 2 个不同的端点,有 2 个不同的结果集。

到目前为止,在调用 ::Market::Product 时,它似乎正在使用 ::Product url 和 :market_name 作为 url 的参数。

有好的解决办法吗?

社区的其他人是如何解决这个问题的?

为所提供的任何帮助干杯。

找到了我的问题的答案。

http://blog.revathskumar.com/2013/12/activeresource-passing-prefix-options.html

看来我一直以来都没有正确使用activeresource。

self.site = end_point
self.prefix = '/api/v2/markets/:market_name/'

当涉及到嵌套资源时,这将是正确的使用方式。

这个解决方案在达到 ActiveResource::Base.rb:1029 时会很好地工作。它将能够从 prefix_source 获得正确的 prefix_parameters,然后创建到远程端点的正确路径。

希望此解决方案对以后可能遇到相同问题的其他人有所帮助。