【发布时间】:2015-10-21 19:41:45
【问题描述】:
我正在尝试根据模型的属性(在父序列化程序中)动态指定序列化程序:
ActiveModel::Serializer.setup do |config|
config.embed = :ids
config.embed_in_root = true
end
class DocumentSerializer < ActiveModel::Serializer
attributes :id, :name, :document_layout
if attributes[:document_layout] === 'portrait'
has_many :pages, serializer: PortraitPageSerializer
elsif attributes[:document_layout] === 'landscape'
has_many :pages, serializer: LandscapePageSerializer
end
end
但这似乎不起作用(我猜属性不只是哈希)。
还有其他方法可以访问该值吗?还是我完全走错了路?
【问题讨论】:
-
您是如何选择 DocumentSerializer 的?你刚刚渲染了一个文档吗?
-
是的,在我正在调用的控制器中:render json: @documents, status: :ok
-
我想使用相同的序列化程序并根据文档布局将某些列留空可能会更明智
标签: ruby-on-rails activemodel active-model-serializers