Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动管理员导出到CSV文件_Ruby On Rails_Ruby_Csv_Activeadmin - Fatal编程技术网

Ruby on rails 活动管理员导出到CSV文件

Ruby on rails 活动管理员导出到CSV文件,ruby-on-rails,ruby,csv,activeadmin,Ruby On Rails,Ruby,Csv,Activeadmin,我正在使用active admin在Rails 4.0应用程序中使用管理功能。我有一个列出 身份证 名字 电子邮件 电话号码 我也在列表的顶部放了一个按钮,如下所示 action_item only: :index do link_to 'Export to CSV', '#' end 单击此按钮时,我想将用户id名称和电子邮件导出到csv文件中。请帮我做这个只需在管理中添加一节 csv do column :id column :name column :email en

我正在使用active admin在Rails 4.0应用程序中使用管理功能。我有一个列出

  • 身份证
  • 名字
  • 电子邮件
  • 电话号码
我也在列表的顶部放了一个按钮,如下所示

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

单击此按钮时,我想将用户id名称和电子邮件导出到csv文件中。请帮我做这个

只需在管理中添加一节

csv do
  column :id
  column :name
  column :email
end
也检查

若你们打开链接,你们会看到一行

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

它将作者姓名添加到post csv文件中,这样您就可以添加任何您想要的字段。下面的代码正在运行:

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
收集操作:导入csv,方法::get do 用户=用户.all.order(“id ASC”) csv=csv.generate(编码:“Windows-1251”)do | csv|
是的,这很有效。但有没有办法在其他表格中显示与此相关的内容。。我想显示这个用户的车辆名称,这是另一个表。它可以像'user.vehicle.name'
user那样访问。所有的
都不会使用当前范围。这也是activeadmin()中内置的功能,它的实现方式没有您建议的解决方案复杂。请不要使用此解决方案,因为它将很快耗尽内存。