這是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