2014-10-02 80 views
1

我正在使用gem active_model_serializers而我正面臨版本控制方面的一些問題。Versioning ActiveModel :: Serializer

控制器

app/controllers/v1/contracts_controller.rb

module V1 
    class ContractsController < ApiController 

     def index 
      @contracts = Contract.all 
      render json: @contracts 
     end 

    end 
end 

app/controllers/v2/contracts_controller.rb

module V2 
    class ContractsController < ApiController 

     def index 
      @contracts = Contract.all 
      render json: @contracts 
     end 

    end 
end 

串行器

app/serializers/v1/contract_serializer.rb

class ContractSerializer < ActiveModel::Serializer 
    attributes :id 
end 

app/serializers/v2/contract_serializer.rb

class ContractSerializer < ActiveModel::Serializer 
    attributes :id, :name 
end 

無論我所說的路線/v1/contracts/v2/contracts,呈現的JSON包括合同名稱,這意味着在V2串行似乎總是被調用。

僅供參考,我在config/application.rb

回答

0

添加config.autoload_paths += Dir[Rails.root.join('app', 'serializers', '**/')]你需要在你的控制器,例如指定串行my answer here

相關問題