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,然后创建到远程端点的正确路径。
希望此解决方案对以后可能遇到相同问题的其他人有所帮助。
目前我遇到了上述问题。
根据我的理解,这是 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,然后创建到远程端点的正确路径。
希望此解决方案对以后可能遇到相同问题的其他人有所帮助。