Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 在Ruby Rails上将数据导出到CSV文件_Ruby On Rails_Ruby_Csv_Activerecord - Fatal编程技术网

Ruby on rails 在Ruby Rails上将数据导出到CSV文件

Ruby on rails 在Ruby Rails上将数据导出到CSV文件,ruby-on-rails,ruby,csv,activerecord,Ruby On Rails,Ruby,Csv,Activerecord,我正在尝试使用active record和csv类导出数据,但我没有生成文件以帮助查看我的代码 当我单击“导出”并没有打开从csv下载的对话框时,我是否遗漏了什么 我的控制器 def export_csv @contact = Contacts.find_by_sql("select * from contacts_list limit 10") respond_to do |format| format.html format.csv { send

我正在尝试使用active record和csv类导出数据,但我没有生成文件以帮助查看我的代码


当我单击“导出”并没有打开从csv下载的对话框时,我是否遗漏了什么

我的控制器

def export_csv
    @contact = Contacts.find_by_sql("select * from contacts_list limit 10")
     respond_to do |format|
       format.html
       format.csv { send_data @contact.as_csv }
     end
  end
我的型号

def self.to_csv
    attributes = %w{id name mail}

    CSV.generate(headers: true) do |csv|
      csv << attributes

      all.each do |contact|
        csv << attributes.map{ |attr| contact.send(attr) }
      end
    end
  end

仅此而已无错误无消息警告。

您需要以不同的方式为链接生成URL-使用URL帮助程序,而不是控制器/操作参数:

<%= link_to( 'Export CSV', companies_export_csv_path(format: "csv", { :class => "btn-ex" } ) %>
“btn-ex”})%>
另请参见:

:company,:action=>:export_csv,格式:'csv',:company_id=>@company.id},{:class=>“btn edit”})%>

谢谢大家,工作得很好。

您的问题是什么?当我单击“导出”时,不会打开从csv下载的对话框,我是否遗漏了什么?单击链接后,转到您的web服务器控制台并复制请求和响应信息。将其添加到您的问题中,不要将其粘贴到评论中。@Beartech updated post对话框未打开以保存csv文件。@mrzasa updated post请参见
Started GET "/company/export_cs" for 127.0.0.1 at 2019-12-17 11:31:26 -0200
Processing by CompanyController#export_cs as HTML
<%= link_to( 'Export CSV', companies_export_csv_path(format: "csv", { :class => "btn-ex" } ) %>
<%= link_to( 'Export' ,{ :controller => :company, :action => :export_csv, format: 'csv', :company_id => @company.id}, { :class => "btn-edit" } ) %>