0

RoR バックエンドでフロントエンドと json の応答に取り組んでおり、コードが煩雑になるのを避けるためにシリアライザーをセットアップしようとして:only => []います。

私が見つけたのは、関連付けのあるシリアライザーでは、まだ初期化されていないクラスの名前を使用できないということです。

class AuthorOnlySerializer < ActiveModel::Serializer
  attributes :id, :name, :real_name, :wiki_link
end

class BookSerializer < ActiveModel::Serializer
  has_many :authors, serializer: AuthorOnlySerializer
  attributes :id, :title, :isbn, :publish_year, :detail
end

このようなコードは正常に動作しますが、これらのクラスを切り替えると (現在は 1 つのファイルにまとめられています) (理解のための UPD: 切り替えるということは、BookSerializer をファイル内の AuthorOnlySerializer の前に置くことです)。

uninitialized constant BookSerializer::AuthorOnlySerializer

これらの問題を回避し、それらを任意の順序で配置できる方法はありますか? クラスの代わりにシンボルをシリアライザーオプションに指定しようとしましたが、その後

undefined method `new' for :AuthorOnlySerializer:Symbol

であるため、そこではクラス以外はサポートされません。

何かご意見は?

4

0 に答える 0