Description

This gem adds an import-action in every controller you like to be able to handle csv-Imports. It includes the complete workflow: Csv-Upload, auto-matching and review, importing data into model.

Requirements

Rails 3 & Ruby 1.8.7

In principle it will also work with Ruby 1.9, whereas changes has to be made as FasterCSV is already integrated named as CSV.

Installation

Gemfile:

gem 'csv_mapper', :git => git://github.com/masche842/csv_mapper.git

Set up a new route to point to the import action (get & post will be needed!):

routes.rb

resources :myresource do
  get 'import', :on => :collection
  post 'import', :on => :collection
end

Include it in your Controller:

require 'csv_mapper'
include CsvMapper::ControllerActions

Set up the fields to map to:

csv_mapper_config(
  :mapping => {
    "Firstname" => :firstname,
    "Lastname"  =>  :lastname
  }
)

See also the implementation in spec/dummy!

Usage

call /myresources/import!

Thanks

This gem is heavily based on Andrew Timberlake’s map-fields-gem (github.com/internuity/map-fields). Nevertheless I didn’t fork it, because the changes are fundamental.

License

MIT License. Copyright 2011 magiclabs* (magiclabs.de)