2016-06-28 12 views
1

私はバージョンシステムでapiを持っています。アクティブなモデルのシリアル化がAPIのバージョン管理で動作しません

私のコントローラ

module Api;module V1 
     class PlansController < ApplicationController   
      def show 
      @plan = Plan.find(params[:id]) 
      render json: @plan 
      end 
     end 
    end;end 

私は自動的に

module Api;module V1 
    class PlanSerializer < ActiveModel::Serializer 
     attributes :name, :amount, :days 
    end 
end;end 

しかし、そのシリアライズないJSONレスポンスをplan_serializer.rbしたフォルダのシリアライザ/ API/V1を持っています。 何が間違っているのか教えてください。

は、私はまた、
class ApplicationController < ActionController::API 
    include ActionController::Serialization 

を追加しようとしたが、まだ動作していませんの。

私は

render json: @plan, serializer: V1::PlanSerializer 

をやっている場合、それが動作しているが、私はそれがすべてのレンダリングにシリアライザを追加せずに仕事をしたいです。

解決策を教えてください。

答えて

0

renderを上書きすると機能することがあります。

class ApplicationController < ActionController::API 
    include ActionController::Serialization 
    DEFAULT_SERIALIZER= V1::PlanSerializer 

    def render options, &block 
    options[:serializer]= DEFAULT_SERIALIZER unless options[:serializer] 
    super options, &block 
    end 

end 
+0

ようアピ:: V1としてactivemodel 0.10 DOC-「名前空間の内部モデルをシリアライズ、::ポストによれば、ActiveModelSerializersは、対応するシリアライザは、同じネームスペース(すなわちアピ:: V1の内部にあることを期待します。 :PostSerializer) " – Adt

+0

https://github.com/rails-api/active_model_serializers/blob/master/docs/general/getting_started.md しかし、それは動作しません:( – Adt

関連する問題