Ruby on rails 如何从Represents中筛选出属性/集合?

Ruby on rails 如何从Represents中筛选出属性/集合?,ruby-on-rails,rails-roar,Ruby On Rails,Rails Roar,例如,我有一个representer,看起来像: module AccountRepresenter include Roar::Representer::JSON include Roar::Representer::Feature::Hypermedia property :id property :name collection :assets, :extend => AssetRepresenter, :class => Asset end 在控制

例如,我有一个representer,看起来像:

module AccountRepresenter

  include Roar::Representer::JSON
  include Roar::Representer::Feature::Hypermedia

  property :id
  property :name

  collection :assets, :extend => AssetRepresenter, :class => Asset
end
在控制器中,我将其用作:

respond_with @accounts, represent_with: AccountsRepresenter
对于另一个操作,我不希望显示
collection:assets
。我试过了

respond_with @accounts, represent_with: AccountsRepresenter, exclude: :assets

但它不起作用。我应该如何将参数传递给representers?

咆哮宝石使用Representable under()。您可以执行以下操作以实现条件功能:

respond_with @accounts, represent_with: AccountsRepresenter, exclude: [:assets]
然后

module AccountRepresenter

  include Roar::Representer::JSON
  include Roar::Representer::Feature::Hypermedia

  property :id
  property :name

  collection :assets, extend: AssetRepresenter, if: lambda { |opts| !opts[:exclude].includes?(:assets)] }
end