Export to CSV on Rails

This simple plugin gives you the ability to call to_csv to a collection of activerecords. The builder options are the same as to_json / to_xml, except for the :include.

Getting Started

In your Gemfile:

gem 'to_csv-rails'# Last officially released gem
# gem "meta_search", :git => "git://github.com/liangwenke/to_csv-rails.git" # Track git repo

or, to install as a gem:

gem install to_csv-rails

or, to install as a plugin:

rails plugin install git://github.com/liangwenke/to_csv-rails.git

In your controller:

def index
  @posts = Post.all

  respond_to do |format|
    format.csv { send_data(@posts.to_csv) }
    # format.csv {
    #   filename = "Posts-#{Time.now.strftime("%Y%m%d%H%M%S")}.csv"
    #   send_data(@posts.to_csv, :type => "text/csv; charset=utf-8; header=present", :filename => filename)
    # }
  end
end

Advanced usage

@posts.to_csv
@posts.to_csv(:only => [:title, :body])
@posts.to_csv(:except => [:id])
@posts.to_csv(:header => false)

Copyright © 2010 [email protected], released under the MIT license