Ruby 匯出CSV檔案
Ruby內建的就有用 CSV了
View
<%= link_to "匯出 CSV", admin_event_path(:format => :csv), :class => "btn btn-default" %>
app\controller\admin\event_controller.rb
require 'csv'
class Admin::EventController < AdminController
def index
respond_to do |format|
format.html
format.csv {
@events = @events.reorder("id ASC")
csv_string = CSV.generate do |csv|
csv << ["ID", "姓名", "電話", "Email", "建立時間"]
@events.each do |r|
csv << [r.id, r.name, r.phone , r.email, r.created_at]
end
end
send_data csv_string, :filename => "#{@event.friendly_id}-events-#{Time.now.to_s(:number)}.csv"
}
end
要先 require csv 載進來之後才能使用CSV.generate,可以產出csv_string
字串,也就是主要的CSV資料,在最後使用send_data進行下載動作。