module ActiveScaffold::Actions::Subform

Public Instance Methods

edit_associated() click to toggle source
# File lib/active_scaffold/actions/subform.rb, line 3
def edit_associated
  do_edit_associated
  respond_to do |format|
    format.js { render :action => 'edit_associated', :formats => [:js], :readonly => @column.association.readonly? }
  end
end

Protected Instance Methods

do_edit_associated() click to toggle source
# File lib/active_scaffold/actions/subform.rb, line 20
def do_edit_associated
  @scope = params[:scope]
  @parent_record = params[:id].nil? ? new_parent_record : find_if_allowed(params[:id], :update)

  cache_generated_id(@parent_record, params[:generated_id]) if @parent_record.new_record?
  @column = active_scaffold_config.columns[params[:child_association]]

  @record = find_associated_record if params[:associated_id]
  @record ||= build_associated(@column.association, @parent_record)
end
find_associated_record() click to toggle source
# File lib/active_scaffold/actions/subform.rb, line 31
def find_associated_record
  @column.association.klass.find(params[:associated_id]).tap do |record|
    save_record_to_association(record, @column.association.reverse_association, @parent_record, @column.association)
  end
end
new_parent_record() click to toggle source
# File lib/active_scaffold/actions/subform.rb, line 12
def new_parent_record
  parent_record = new_model
  # don't apply if scope, subform inside subform, because constraints won't apply to parent_record
  apply_constraints_to_record parent_record unless @scope
  create_association_with_parent parent_record, true if nested?
  parent_record
end