shadow11 / to_csv forked from arydjmal/to_csv
- Source
- Commits
- Network (4)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
commit 8e81186b3aee812e39702cd926c3964c78fa0f7a
tree af596db0491a87ee8c0ea440081e565cf4c62cec
parent a94862f779c1b62ab679ea1f621dcebd5532826b
tree af596db0491a87ee8c0ea440081e565cf4c62cec
parent a94862f779c1b62ab679ea1f621dcebd5532826b
to_csv /
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | Wed Jun 11 12:46:07 -0700 2008 | |
| |
README.rdoc | ||
| |
init.rb | Tue Jul 29 14:02:13 -0700 2008 | |
| |
lib/ | ||
| |
test/ |
README.rdoc
to_csv plugin
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.
Usage
@users = User.all
#
# defaults are export header and all fields except id, and timestamps
#
@users.to_csv
@users.to_csv(:only => [:last_name, :role])
@users.to_csv(:timestamps => true, :id => true, :header => false)
@users.to_csv(:except => [:last_name, :role])
@users.to_csv(:except => :role, :methods => [:name, :admin?])
#
# NEW FEATURE
# Now you can call methods of a has_one or belongs_to association
# (for now you can go up/down 1 level)
#
# A note belongs_to :user
@notes = Note.all
@notes.to_csv(:methods => [{:user => :name}])
Real life example
In the controller where you want to export to csv, add the format.csv line (as of rails 2.1 it is not necessary to register the csv myme_type)
class UserController < ApplicationController
def index
@users = User.all
respond_to do |format|
format.html
format.xml { render :xml => @users }
format.csv { send_data @users.to_csv }
end
end
def show...
def new...
def edit...
def create...
def update...
def destroy...
end
Dependencies
sudo gem install fastercsv
Install
./script/plugin install git://github.com/arydjmal/to_csv.git
Ideas
I got ideas and influence from Mike Clarks recipe #35 in Rails Recipes book, some anonymous pastie, and whoever wrote to_xml/to_json builders.
Note
Does not work on a single activerecord, ie, User.first.to_csv. Cannot style output.
Copyright © 2008 Ary Djmal, released under the MIT license

