2015-06-26 61 views
2

我正在使用活动管理员在我的Rails 4.0应用程序中使用管理功能。我有一个用户表,列出Active Admin导出为CSV文件

  • ID
  • 电子邮件
  • 手机没有

我也提上了名单这样的顶部的按钮。

action_item only: :index do 
    link_to 'Export to CSV', '#' 
end 

我想将用户ID名称&电子邮件导出为CSV文件,当我点击这个按钮。请帮我做这个

回答

5

只需添加部分内部管理

csv do 
    column :id 
    column :name 
    column :email 
end 

检查也active admin customize CSV

如果你打开链接,你会看到一行

column(:author) { |post| post.author.full_name } 

它增加了作者名字进入后csv文件,他的方式,你可以添加任何你想要的领域

+0

是的工作。但有没有办法,我可以显示与此相关的其他表中的东西..就像我想显示此用户的车辆名称是另一个表。它可以像'user.vehicle.name' –

2

以下代码是作品

collection_action :import_csv, method: :get do 
    users = User.all.order("id ASC") 
    csv = CSV.generate(encoding: 'Windows-1251') do |csv| 
    csv << [ "Id", "Name", "Gender", "Email", "Mobile number","Email Verified", 
    "Mobile Verified", "Language Preference", "Counselling Preference", "Job Role Name", 
    "Liked", "Disliked", "Favourited", "Shared", "Video Watched"] 
    users.each do |u| 
     email_verified = u.is_email_verified ? "Yes" : "No" 
     mobile_verified = u.is_mobile_verified ? "Yes" : "No" 
     counselling_preference = u.counselling_preference ? "Yes" : "No" 
     userarry = [ u.id, u.name, u.gender, u.email, u.mobile_number, email_verified, 
     mobile_verified, u.language_preference, counselling_preference] 
     csv << userarry + ["", "","","", "", ""] 
    end 
    end 

    send_data csv.encode('Windows-1251'), type: 'text/csv; charset=windows-1251; header=present', disposition: "attachment; filename=accounting_report.csv" 
end 

action_item :add do 
    link_to "Export to CSV", import_csv_admin_users_path, method: :get 
end