问题:
我用我的控制器这样做:
class Api::Product::V1::LicenseController < ApplicationController
为什么我不能用我的序列化器做到这一点?(或者我可以吗?)
class Api::Product::V1::LicenseSerializer < ActiveModel::Serializer
语境:
我有多个控制器/路由对应于一个模型。
而且我需要每个模型有多个序列化器,它们与我的控制器一一对应。
ActiveModel::Serializers
允许您从控制器指定序列化程序,如下所示:
render :json => @license_token, :serializer => LicenseSerializer
那么为什么我也不能这样做呢?
render :json => @license_token, :serializer => Api::Product::V1::LicenseSerializer
我试图避免像这样的复合名称的丑陋,即使我知道它们会起作用:
ProductAlphaLicenseSerializer
ProductBravoLicenseSerializer
ProductCharlieLicenseSerializer
我的每个模型都支持多个 API,这就是我想要命名序列化程序的原因。每个对应的序列化程序以不同的方式使用每个模型。