RailsのCSV出力

Rubyに標準でcsv.rbがついてるので簡単。

viewの実装

<%=link_to "CSV出力",:controller=>"test",:action=>"csv" %>

controllerの実装

require 'csv'
class TestController < ApplicationController

 def csv
  CSV::Writer.generate(output = "") do |csv|
   Item.find(:all).each do |item|
    csv << [item.id, item.name, item.created_at]
   end
  end
  send_data(output, :type=>'text/csv', :filename=>'test.csv')
 end

end

Excelで開きたい人用にコントローラ内でこんなの書いてみたけどどんくさい?
send_data 前に

output = Iconv.conv('SJIS', 'UTF-8', output)