問: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