我從我的Rails應用程序下載csv文件時遇到問題。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文件只是空的。 可能是什麼問題?
您確定您在「@ report」中有數據嗎? –
不是一個解決方案,而是一個觀察:CSV代表逗號分隔值,但您正試圖在此處編寫HTML。 – zwippie
我只是覺得沒有消息。 要檢查結果,請從控制檯運行查詢並查看它的響應。 – dennis