Ruby on rails ActiveAdmin-有没有一种方法可以生成一个CSV,将属于父模型的两个模型组合起来?

Ruby on rails ActiveAdmin-有没有一种方法可以生成一个CSV,将属于父模型的两个模型组合起来?,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,我有一个型号User,还有两个型号Foo和Bar,它们属于:User。 用户模型有有\u many:foo和有\u many:bar 这些关联在railsapp级别,而不是active\u admin级别 我想要的是从用户显示页面生成一个CSV,我已经有了这个页面,它结合了用户各自的foo和bar属性 Foo和Bar共享一些属性,但不是全部,所以我知道有些字段将留空 在Active Admin中是否有这样做的方法 我尝试过使用csv do块,但无法将所有Foos和Bars放在同一个csv中。您可

我有一个型号
User
,还有两个型号
Foo
Bar
,它们
属于:User
。 用户模型有
有\u many:foo
有\u many:bar

这些关联在
rails
app级别,而不是
active\u admin
级别

我想要的是从用户显示页面生成一个CSV,我已经有了这个页面,它结合了用户各自的
foo
bar
属性

Foo和Bar共享一些属性,但不是全部,所以我知道有些字段将留空

在Active Admin中是否有这样做的方法


我尝试过使用
csv do
块,但无法将所有
Foo
s和
Bar
s放在同一个csv中。

您可以编写自己的csv生成代码。以下是一些脚手架代码,让您开始:

sidebar :foos_bars_as_csv, :only => [:show] do
  a(href: foos_bars_as_csv_admin_user_path) do
    'Download as csv'
  end
end

member_action :foos_bars_as_csv, :method => :get do
  # define your own headers
  csv_headers = ["Header 1", "Header 2"] # customize yourself
  foos = resource.foos
  bars = resource.bars
  rawcsv = CSV.generate(:col_sep => ",") do |csv|
    # here you could add headers
    # csv << csv_headers
    
    foos.each do |foo|
      csv << foo.build_csv_row # or something like this
    end
    bars.each do |bar|
      bar << bar.build_csv_row
    end
    
    csv << csv_row
    end
  end
  send_data(rawcsv, :type => 'text/csv charset=utf-8; header=present', :filename => Time.now.strftime("%Y%m%e-%H%M%S) + "User#{resource.id}-FoosnBars" and return
end
sidebar:foos\u bars\u as\u csv,:only=>[:show]do
a(href:foos\u bars\u as\u csv\u admin\u user\u path)做什么
“作为csv下载”
结束
结束
成员操作:foos\u bar\u as\u csv,:method=>:get do
#定义自己的标题
csv_headers=[“Header 1”、“Header 2”]#自定义您自己
foos=resource.foos
bars=资源.bars
生成(:col_sep=>“,”)do|CSV|
#您可以在这里添加标题
#csv