5

レコードごとに、アクティブなモデル シリアライザーに has_one 関連付けを条件付きで含めることは可能ですか?

私の場合、グループが「見えない」タイプの場合、「グループ」と呼ばれる関連付けを返す必要はありません。ここに私のシリアライザからのスニペットがあります。

class PostFeedSerializer < ActiveModel::Serializer
  attributes :id, :title, :thumbnail_photo, :view_count, :ago, :created_by
  has_one :group, serializer: GroupSerializer

私がやりたいことは、次のような効果があります。

has_one :group, serializer: GroupTinySerializer unless object.get_group.invisible?
4

2 に答える 2

12

バージョン ~> 0.8.0 を使用していると仮定すると、以下を に配置できるはずですPostFeedSerializer

def include_group?
  !object.get_group.invisible?
end

true を返すgroupたびに、条件付きでオブジェクトが含まれます。include_group?

将来のバージョンでは、AMS はメソッドfilterの代わりに移行するようです。include_x?

于 2014-05-01T01:26:34.893 に答える