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

时间:2016-02-09 02:49:54

标签: ruby-on-rails ruby ruby-on-rails-4 activeresource

目前我有上述问题。

根据我的理解,这是一个关于rails自动加载的问题以及如何在各个类的命名空间中使用标准。

无任何范围检索产品/产品的产品。

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

市场::产品为我们提供了在市场范围内寻求产品的界面,类似于产品。

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

Controller可以调用市场产品对象,但返回的对象只是产品

# 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的参数。

有一个很好的解决方案吗?

社区其他成员如何解决这个问题?

欢呼给予任何帮助。

1 个答案:

答案 0 :(得分:0)

找到我的问题的答案。

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,然后创建到远程端点的正确路径。

希望此解决方案可以帮助将来可能遇到同样问题的其他人。