活动模型序列化不适用于api版本控制

时间:2016-06-28 19:55:18

标签: ruby-on-rails json serialization

我有版本系统api。

我的控制器

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

我有文件夹序列化器/ api / v1,其中我有plan_serializer.rb

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

但它没有自动序列化json响应。 请告诉我我做错了什么?

我也尝试添加

class ApplicationController < ActionController::API
  include ActionController::Serialization

但仍然不起作用。

如果我在做

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

然后它正在工作,但我希望它能在每次渲染中都不添加序列化器的情况下工作。

请告诉我解决方案。

1 个答案:

答案 0 :(得分: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