Sha256: 3f26a151c69b577f705213f5ca284ec1e52aa2a22193ea9a83ee81b8e95e305d
Contents?: true
Size: 1.94 KB
Versions: 2
Compression:
Stored size: 1.94 KB
Contents
module CsvImportMagic class ImportersController < CsvImportMagic::BaseController helper_method :import_file_csv layout 'csv_import_magic' def show @importer = ::Importer.find(params[:id]) end def create @importer = ::Importer.new(importer_params) if @importer.save! && import_file_csv redirect_to edit_importer_path(@importer), alert: t('csv_import_magic.importers_controller.create.alert') end rescue ActiveRecord::RecordInvalid, CSV::MalformedCSVError => e redirect_to request.referrer, flash: { error: e.message } end def edit @importer = ::Importer.find(params[:id]) end def update @importer = ::Importer.find(params[:id]) if @importer.update(csv_importer_magic_update_params) CsvImportMagic::ImporterWorker.perform_async(importer_id: @importer.id, resources: resources) redirect_to importer_path(@importer), flash: { notice: t('csv_import_magic.importers_controller.update.notice') } else errors = @importer.errors.full_messages.to_sentence flash[:alert] = errors.present? ? errors : t('csv_import_magic.importers_controller.update.alert') render :edit end end private def resources method_name = "#{@importer.source}_resources" respond_to?(method_name) ? send(method_name) : nil end def import_file_csv @csv ||= begin content = Paperclip.io_adapters.for(@importer.attachment).read.force_encoding('UTF-8') content = content.encode('UTF-8', content.encoding, invalid: :replace, undef: :replace) ::CSV.parse(content, headers: true, col_sep: column_separator) end end def column_separator ::CsvImportMagic::Importer.new(@importer.id).column_separator end def importer_params params.require(:importer).permit! end def csv_importer_magic_update_params params.require(:importer).permit(columns: []) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
csv_import_magic-0.0.2 | app/controllers/csv_import_magic/importers_controller.rb |
csv_import_magic-0.0.1 | app/controllers/csv_import_magic/importers_controller.rb |