簡體   English   中英

Rails下載空的csv文件

[英]Rails downloading empty csv file

我從rails應用程序下載csv文件時遇到問題。

首先,控制器看起來像這樣;

def report
  @report = SentMessage.where('user_id = ? AND created_at <= ? AND created_at >=   ?', current_user.id, params[:before], params[:after]).order('created_at Desc')
  respond_to do |format|
    format.html
    format.csv do
      response.headers["Content-Type"]        = "text/csv; charset=UTF-8; header=present"
      response.headers["Content-Disposition"] = "attachment; filename=sent_messages.csv"
    end
  end
end

然后我的report.csv.erb文件看起來像這樣;

<%= provide(:title, "Sent Messages") %>
<div>
  <div class="panel radius"> <h2 class="text_center">Sent Messages</h2></div>
    <table class="table table-striped table-bordered table-hoverlarge-12 radius columns large-centered" id="sent_table">
      <thead>
        <tr>
          <th>To</th>
          <th>From</th>
          <th>Message</th>
          <th>Delivery Report</th>
          <th>cost</th>
          <th>Time</th>
        </tr>
      </thead>
      <tbody>
        <% @report.each do |message| %>
            <tr>
              <td><%= message.to %></td>
              <td><%= message.from %></td>
              <td><%= message.message %></td>
              <td><%= message.delivery %></td>
              <td><%= message.cost %></td>
              <td><%= message.created_at.to_datetime.strftime("%b %d, %Y %I:%M%P") %></td>
            </tr>
        <% end %>
      </tbody>
    </table>
  </div>
</div>

當我單擊下載鏈接時,除了report.csv.erb文件中顯示的標題以外,下載的文件只是空白。 可能是什么問題呢?

我只需要更改下載鏈接即可。

<%= link_to "Download CSV", params.merge(format: "csv"), class: "button radius" %> 

而且有效。

這樣做可能對您有用。

def report
            @report = SentMessage.where('user_id = ? AND created_at <= ? AND created_at >=   ?', current_user.id, params[:before], params[:after]).order('created_at Desc')
                  respond_to do |format|
                           format.html
                           format.csv{
          response.headers["Content-Type"] = "text/csv; charset=UTF-8; header=present"
          response.headers["Content-Disposition"] = "attachment;                       filename=sent_messages.csv"}


                        end
  end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM