在Activeadmin中生成CSV时使用自定义查询

在Activeadmin中生成CSV时使用自定义查询,csv,activeadmin,Csv,Activeadmin,我有额外的计算列(基于联接)要包含在CSV中 如果我打开每个记录并单独计算 csv do column :complicated_calculation {  |r| r.calculate_things } end 生成数千条记录需要很长时间 我需要自定义生成CSV时的选择查询,然后使用该查询中的列。如何做到这一点?在文档中,向您展示了如何在不重写整个csv构建器的情况下:修改作用域\u集合 因此,如果您的查询在模型中等待: class Person < ActiveRecord:

我有额外的计算列(基于联接)要包含在CSV中

如果我打开每个记录并单独计算

csv do
  column :complicated_calculation {  |r| r.calculate_things }
end
生成数千条记录需要很长时间

我需要自定义生成CSV时的
选择
查询,然后使用该查询中的列。如何做到这一点?

在文档中,向您展示了如何在不重写整个csv构建器的情况下:修改
作用域\u集合

因此,如果您的查询在模型中等待:

class Person < ActiveRecord::Base
  def self.with_calculation
    select("people.*, (mumbo + jumbo * fumbo) "\
      "AS complicated_calculation") # notice we name the attribute here
    .joins("LEFT JOIN games ON person_id = people.id")
    .group("people.id")
  end
end
然后您的CSV将具有免费属性:

csv do
  column :complicated_calculation
end

即将更改索引操作上的数据列表。这只能自定义csv下载操作?@Jonathan.Allard是否有一种方法不影响
范围内的_集合的
索引表
csv do
  column :complicated_calculation
end