Module: ActiveScaffold::Actions::Duplicate

Defined in:
lib/active_scaffold/actions/duplicate.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
# File 'lib/active_scaffold/actions/duplicate.rb', line 3

def self.included(base)
  base.before_action :duplicate_authorized_filter, :only => :duplicate
end

Instance Method Details

#duplicateObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/active_scaffold/actions/duplicate.rb', line 7

def duplicate
  @old_record = find_if_allowed(params[:id], crud_type: :read, action: :duplicate)
  @record = @old_record.send(active_scaffold_config.duplicate.method)
  if request.post?
    before_duplicate_save(@record)
    self.successful = @record.save
    after_duplicate_save(@record) if successful?
    respond_to_action(:duplicate)
  else
    params.delete :id
    before_duplicate_new(@record)
    respond_to_action(active_scaffold_config.duplicate.action_view)
  end
end