Sha256: 4c6b34abf9ba6b3b1a17f5ae425a1b41457ff8a294ee516e8b9cf5eda57769ca

Contents?: true

Size: 1.29 KB

Versions: 5

Compression:

Stored size: 1.29 KB

Contents

class Admin::ScaffoldController < Admin::BaseController
  respond_to :html, :js
    
  def index
    @search = current_resource_class.search(params[:search])
    set_collection @search.page(params[:page] || 1)
  end

  def new
     set_object current_resource_class.new  
  end
  
  def edit
  end
  
  def create
      set_object current_resource_class.new(params[:"#{resource_name}"])
      
      if current_resource.respond_to?(:author)
        current_resource.author ||= current_user
      end
      
      current_resource.save
      respond_with(current_resource)
  end
  
  def update
    current_resource.attributes = params[:"#{resource_name}"]
    current_resource.save
    respond_with(current_resource)
  end
  
  def destroy
    current_resource.destroy
    respond_with(current_resource)
  end
  
  protected
  
  # overrides checkin default
  def fetch_object
    if params[:id]
      set_object(current_resource_class.find(params[:id]))
    end
  end
    
  # helpers overrides
  def current_resource_class
    @current_resource_class ||= params[:_admin_resource_type].classify.constantize
  end

  private 

  def set_object(value)
    instance_variable_set("@#{resource_name}", value)    
  end
  
  def set_collection(value)
    instance_variable_set("@#{collection_name}", value)
  end
  
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fullstack-admin-0.1.25 app/controllers/admin/scaffold_controller.rb
fullstack-admin-0.1.24 app/controllers/admin/scaffold_controller.rb
fullstack-admin-0.1.23 app/controllers/admin/scaffold_controller.rb
fullstack-admin-0.1.20 app/controllers/admin/scaffold_controller.rb
fullstack-admin-0.1.19 app/controllers/admin/scaffold_controller.rb