如何在运行时指定其他ActiveModel序列化器属性?

时间:2018-08-22 19:27:36

标签: ruby-on-rails active-model-serializers

有很多SO帖子都在讨论在运行时删除属性或使属性成为可选属性。

如何配置和调用ActiveModel :: Serializer,以便有一组默认属性,然后在运行时,客户端代码可以指定一组要包括的其他属性?

这里是一个例子:

class UserSerializer < ActiveModel::Serializer
  attributes :id, email

  def roles
    @object.roles.map(&:name)
  end
end

us = UserSerializer.new(User.first, also: [:first_name, :roles])
us.as_json
# Expected:
# {:id => 1, :email => "user@example.com", :first_name => "Bob", :roles => [:admin, :employee]}

很明显,不支持:also关键字,还有另一种方法吗?

0 个答案:

没有答案