在 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
这样的代码可以正常工作,但是如果我切换这些类(现在将它们放在一个文件中)(UPD 用于理解:我所说的切换是将 BookSerializer 放在文件中 AuthorOnlySerializer 的前面),我得到
uninitialized constant BookSerializer::AuthorOnlySerializer
有什么方法可以避免这些问题并能够将它们按任何顺序排列?我尝试在序列化程序选项中提供符号而不是类,但随后出现
undefined method `new' for :AuthorOnlySerializer:Symbol
,所以它只支持那里的类。
有什么想法吗?