Sha256: 38495c5d1f08b2939effdd42e2ab60c9aba799e7eb58fa674f66a803f96173f6

Contents?: true

Size: 1.27 KB

Versions: 6

Compression:

Stored size: 1.27 KB

Contents

module LoadBehind
  class ControllerResource < CanCan::ControllerResource
    def initialize(controller, name, parent = nil, options = {})
      super(controller, name, parent, options)
    end

    def load_resource
      puts "AjaxLoading::load_resource"
      params = @controller.params
      set_controller_var 'container', params[:container] if params.has_key?(:container)

      if params.has_key?(:associated)
        ass_params = params[:associated]
        relation = ass_params["class_name"].constantize.find(ass_params["id"])
        association = ass_params["association"]

        set_controller_var 'container', get_controller_var('container') ||
            relation.element_id(:show, association)

        self.model_instance = relation.send(association)
      elsif collection_action?
        self.model_instance = model_class.where('1=1')
      else
        super
      end
      set_controller_var 'container', get_controller_var('container') || 'main_container'
    end

    private

    def set_controller_var(name, value)
      name = '@'+name unless name.include?('@')
      @controller.instance_variable_set(name, value)
    end
    def get_controller_var(name)
      name = '@'+name unless name.include?('@')
      @controller.instance_variable_get(name)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
casey_jones-0.0.105 lib/ajax_loading/controller_resource.rb
casey_jones-0.0.104 lib/ajax_loading/controller_resource.rb
casey_jones-0.0.103 lib/ajax_loading/controller_resource.rb
casey_jones-0.0.102 lib/ajax_loading/controller_resource.rb
casey_jones-0.0.101 lib/ajax_loading/controller_resource.rb
casey_jones-0.0.100 lib/ajax_loading/controller_resource.rb