2016-02-09 3 views
1

В настоящее время у меня есть вышеупомянутая проблема.Постоянная проблема ActiveResource toplevel; путь запроса отличается с перерывами.

С моей точки зрения, это проблема с автозагрузкой рельсов и как существуют стандарты в именах, охватывающих различные классы.

Продукт, который извлекает продукт/продукцию без каких-либо ограничений.

# 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 

Контроллер может вызвать объект рынка продукта, но объект является возвращение только продукт

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

На апи, они 2 разные оконечная, с 2-мя различными наборами результатов.

До сих пор при вызове :: Market :: Product, похоже, он использует :: Product url и: market_name в качестве параметров для этого URL-адреса.

Есть ли хорошее решение?

Как остальная часть сообщества обошла эту проблему?

Приветствия за любую помощь, которая предоставляется.

ответ

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_parameters из префикса_источника, а затем создать правильный путь к удаленной конечной точке.

Надеюсь, что это решение поможет другим, которые могут столкнуться с одной и той же проблемой в будущем.