Sha256: 3bfb76df2787b78918ec2872edffe2ce677ab4452c5f1bda48f158b61e46ba8e
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
class ActsAsAssets::AssetsController < ApplicationController before_filter "assign_root_model" before_filter "assign_target", :only => [:index,:destroy] def index load_assets render 'acts_as_assets/assets/index', :layout => false end def create name = root_model_name klazz = ([name.pluralize.camelize] << params[:type]).join('::') @asset = klazz.constantize.create!(:asset => params[:file], "#{name}".to_sym => instance_variable_get("@#{name}".to_sym)) respond_to do |format| if @asset.valid? format.js { render :json => {:success => true} } else format.js { render :json =>{:success => false, :errors => @asset.errors} } end end end def destroy begin @asset = instance_variable_get("@#{root_model_name}").send(:assets).find_by_id(params[:id]) @asset.destroy rescue Exception => e error = e.message end respond_to do |format| if error.nil? format.js { render 'acts_as_assets/assets/destroy'} else format.js { render :json => {:success => false, :errors => error} } end end end private def load_assets name = root_model_name klazz = ([name.pluralize.camelize] << params[:type]).join('::') @assets = klazz.constantize.send(:where,"#{name}_id".to_sym => params["#{name}_id".to_sym]) end def assign_root_model name = root_model_name instance_variable_set "@#{name}", name.camelize.constantize.send(:find, params["#{name}_id".to_sym]) end def root_model_name ActiveSupport::Inflector.underscore(self.class.to_s.split('::').first.singularize) end def assign_target @target = params[:target] end def destroy_path doc name = root_model_name method = "#{name.pluralize}_assets_destroy_path" send(method.to_sym, instance_variable_get("@#{name}"), :asset_id => doc.id, :target => @target) end helper_method :destroy_path end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
acts_as_assets-0.0.1 | app/controllers/acts_as_assets/assets_controller.rb |