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

cod*_*evb 5 ruby csv activerecord ruby-on-rails

我正在尝试使用活动记录和 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
Run Code Online (Sandbox Code Playgroud)

我的模特

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
Run Code Online (Sandbox Code Playgroud)

我的看法

<%= link_to( 'Export CSV' ,{ :controller => :company, :action => :export_csv, format: "csv"}, { :class => "btn-ex" } ) %>
Run Code Online (Sandbox Code Playgroud)

控制台输出

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
Run Code Online (Sandbox Code Playgroud)

仅此而已,没有错误,没有消息警告。

cod*_*evb 1

<%= link_to( 'Export' ,{ :controller => :company, :action => :export_csv, format: 'csv', :company_id => @company.id}, { :class => "btn-edit" } ) %>
Run Code Online (Sandbox Code Playgroud)

谢谢你们,工作完美。