質問:
私は自分のコントローラーでこれを行います:
class Api::Product::V1::LicenseController < ApplicationController
シリアライザーでこれを行うことができないのはなぜですか? (または私はできますか?)
class Api::Product::V1::LicenseSerializer < ActiveModel::Serializer
環境:
1 つのモデルに対応する複数のコントローラー/ルートがあります。
また、コントローラーと 1 対 1 で対応するモデルごとに複数のシリアライザーが必要です。
ActiveModel::Serializers
次のようにコントローラーからシリアライザーを指定できます。
render :json => @license_token, :serializer => LicenseSerializer
では、なぜ私もこれを行うことができないのですか?
render :json => @license_token, :serializer => Api::Product::V1::LicenseSerializer
これらが機能することはわかっていますが、これらのような複合名の醜さを避けようとしています。
ProductAlphaLicenseSerializer
ProductBravoLicenseSerializer
ProductCharlieLicenseSerializer
私のモデルはそれぞれ複数の API をサポートしているため、シリアライザーに名前空間を設定したいと考えています。各モデルは、対応するシリアライザーごとに異なる方法で使用されます。