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