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
であるため、そこではクラス以外はサポートされません。
何かご意見は?