Module: ActiveAdminImporter::DSL

Defined in:
lib/active_admin_importer/dsl.rb

Instance Method Summary collapse

Instance Method Details

#define_import_for(name = 'records', &block) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/active_admin_importer/dsl.rb', line 3

def define_import_for(name='records', &block)
  definition = ::ActiveAdminImporter::Definition.new(name, self.controller, &block)

  action_item :edit, :only => :index do
    link_to definition[:action].titleize, :action => definition[:form_action]
  end

  collection_action(definition[:form_action]) do
    render definition[:view], :locals => { :target_action => definition[:action] }
  end

  collection_action(definition[:action], :method => :post) do
    parent if parent?
    import = ::ActiveAdminImporter.import(params[:dump][:file], :controller => self, :definition => definition)
    redirect_to collection_path(), alert: import.result
  end

  ::ActiveAdminImporter.register(definition)
end