module ActiveScaffold::Actions::Nested::ChildMethods

Public Class Methods

included(base) click to toggle source
Calls superclass method
# File lib/active_scaffold/actions/nested.rb, line 155
def self.included(base)
  super
end

Public Instance Methods

add_existing() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 164
def add_existing
  do_add_existing
  respond_to_action(:add_existing)
end
destroy_existing() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 169
def destroy_existing
  return redirect_to(params.merge(:action => :delete, :only_path => true)) if request.get? || request.head?
  do_destroy_existing
  respond_to_action(:destroy_existing)
end
new_existing() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 159
def new_existing
  do_new
  respond_to_action(:new_existing)
end

Protected Instance Methods

add_existing_authorized?(record = nil) click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 231
def add_existing_authorized?(record = nil)
  nested_parent_record.authorized_for?(:crud_type => :update, :column => nested.association.try(:name))
end
add_existing_respond_to_html() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 189
def add_existing_respond_to_html
  if successful?
    flash[:info] = as_(:created_model, :model => ERB::Util.h(@record.to_label))
    return_to_main
  else
    render(:action => 'add_existing_form')
  end
end
add_existing_respond_to_js() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 198
def add_existing_respond_to_js
  if successful?
    render :action => 'add_existing'
  else
    render :action => 'form_messages'
  end
end
add_existing_respond_to_json() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 210
def add_existing_respond_to_json
  render :json => response_object, :only => active_scaffold_config.list.columns.visible_columns_names, :status => response_status
end
add_existing_respond_to_xml() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 206
def add_existing_respond_to_xml
  render :xml => response_object, :only => active_scaffold_config.list.columns.visible_columns_names, :status => response_status
end
after_create_save(record) click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 239
def after_create_save(record)
  return unless params[:association_macro] == :has_and_belongs_to_many
  params[:associated_id] = record
  do_add_existing
end
delete_existing_authorized?(record = nil) click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 235
def delete_existing_authorized?(record = nil)
  nested_parent_record.authorized_for?(:crud_type => :update, :column => nested.association.try(:name), :reason => true)
end
destroy_existing_respond_to_html() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 214
def destroy_existing_respond_to_html
  flash[:info] = as_(:deleted_model, :model => ERB::Util.h(@record.to_label))
  return_to_main
end
destroy_existing_respond_to_js() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 219
def destroy_existing_respond_to_js
  render(:action => 'destroy')
end
destroy_existing_respond_to_json() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 227
def destroy_existing_respond_to_json
  render :json => successful? ? '' : response_object, :only => active_scaffold_config.list.columns.visible_columns_names, :status => response_status
end
destroy_existing_respond_to_xml() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 223
def destroy_existing_respond_to_xml
  render :xml => successful? ? '' : response_object, :only => active_scaffold_config.list.columns.visible_columns_names, :status => response_status
end
do_add_existing() click to toggle source

The actual “add_existing” algorithm

# File lib/active_scaffold/actions/nested.rb, line 246
def do_add_existing
  parent_record = nested_parent_record(:update)
  @record = active_scaffold_config.model.find(params[:associated_id])
  if parent_record && @record
    self.successful = false unless parent_record.send(nested.association.name) << @record
    parent_record.save if successful?
  else
    false
  end
end
do_destroy_existing() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 257
def do_destroy_existing
  if active_scaffold_config.nested.shallow_delete
    @record = nested_parent_record(:update)
    collection = @record.send(nested.association.name)
    assoc_record = collection.find(params[:id])
    collection.delete(assoc_record)
  else
    do_destroy
  end
end
new_existing_respond_to_html() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 177
def new_existing_respond_to_html
  if successful?
    render(:action => 'add_existing_form')
  else
    return_to_main
  end
end
new_existing_respond_to_js() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 185
def new_existing_respond_to_js
  render(:partial => 'add_existing_form')
end

Private Instance Methods

add_existing_formats() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 274
def add_existing_formats
  (default_formats + active_scaffold_config.formats).uniq
end
destroy_existing_formats() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 278
def destroy_existing_formats
  (default_formats + active_scaffold_config.formats).uniq
end
new_existing_formats() click to toggle source
# File lib/active_scaffold/actions/nested.rb, line 270
def new_existing_formats
  (default_formats + active_scaffold_config.formats).uniq
end