这是v0.10.6版本的用法,引用自github serializers.md文档,其他用法自行翻阅
在controller内声明方法,然后在Serializer内直接引用就行, 可以用来取舍attiribute是否显示以及返回当前用户的部分信息判定
before_action do
self.class.serialization_scope :boss_user
end
private
def boss_user
current_user || User.first
end
class ShopSerializer < ActiveModel::Serializer
attribute :name, if: :is_boss?
attribute :is_boss
def is_boss
is_boss?
end
def is_boss?
user = boss_user
user.present? && ShopUser.find_by(user: user, role: "boss", shop: object)
end
end