rails active_model_serializers 在Serializer內獲取current_user

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章