- 
                Notifications
    You must be signed in to change notification settings 
- Fork 7
Howto : add buttons to download data as xml, json or csv
        giniedp edited this page Jul 4, 2012 
        ·
        5 revisions
      
    First add buttons in the view
- content_for :fancygrid_users_buttons do
  %li= link_to "XML", "#", :onclick => "Fancygrid.users.download('xml'); return false;"
  %li= link_to "JSON", "#", :onclick => "Fancygrid.users.download('json'); return false;"
  %li= link_to "CSV", "#", :onclick => "Fancygrid.users.download('csv'); return false;"
= fancygrid :usersNext, in the controller you have to modify the fancygrid setup to not to paginate the data on the xml, json or csv requests, and add format renderers.
def index
  grid = fancygrid_for :users do |g|
    g.attributes :email, :first_name, :last_name
    g.ajax_url = users_path
    # paginate only on html request
    g.paginate = request.format.html?
    g.find
  end
  respond_to do |format|
    format.html { render }
    format.json { render :json => projects_grid.dump_records }
    format.xml { render :xml => projects_grid.dump_records }
    format.csv { # TODO: add code to convert records to csv }
  end
end