1

假设我有一个User具有 ausername和 a的模型full_name。我想渲染一个用户对象,Active Model Serializer并且只根据它current_user是 nil 还是登录来渲染特定的参数。由于我也在使用pundit,我想知道是否有办法使用pundit.

例如

用户是nil

{id:1, username: 'foo'}

用户是logged in

{id:1, username: 'foo', full_name: 'bar'}
4

1 回答 1

1

为什么不检查是否current_usernil您的User序列化程序中。不确定您使用的是哪个版本,但您可以使用 0.9 版本执行此操作

class UserSerializer < ActiveModel::Serializer
  attributes :id, :username, :full_name

  def filter(keys)
    if scope.blank? #current_user is not logged in
      keys - [:full_name]
    else
      keys
    end
  end
end
于 2014-06-27T17:36:24.393 回答