问:ActiveModel :: Serializers可以像Rails控制器一样命名空间名称(嵌套)吗?
我做我的控制器:
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,这就是为什么我想namesp ace序列化程序。每个对应的串行器对每个模型的使用都不相同。
嘿克里斯,我很好奇你最终做了什么。我目前也在尝试通过命名空间来组织我的active_model_serializers。问题是,如果我只是使用Class名称而不是名称空间和Classname,那么它不起作用。因此,例如:'render:json => @license_token,:serializer => Api :: Product :: V1 :: LicenseSerializer'适用于我,而不是'render:json => @license_token,:serializer => LicenseSerializer' – Andy