This Rails plugin provides a controller method called each_csv_row and an accompanying helper called csv_form.
By default, when each_csv_row is called, any exceptions raised in the block will be rescued. The rows that triggered the exceptions will then be displayed in a table as part of the output from csv_form.
You can turn off rescuing by calling each_csv_row(false).
Big thanks to Doorkeeper for their work updating this plugin to Rails 3.
- Ruby 1.9
- Rails 3
# app/controllers/members_controller.rb
class MembersController < ActionController::Base
include CsvImport
def create
each_csv_row do |row|
Member.create!(row)
end
end
end
# app/views/members/index.html.erb
<h1>Import Members</h1>
<%= csv_form members_path do %>
<!-- whatever you put in the optional
block will appear at the end of the form -->
<% end %>