Ruby on rails 如何从Represents中筛选出属性/集合?
例如,我有一个representer,看起来像: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 在控制
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