Sha256: 949cf45017b70733fbe8b6cf53a0136b324818202353210eaf4a72a77af9e9f9

Contents?: true

Size: 1.13 KB

Versions: 5

Compression:

Stored size: 1.13 KB

Contents

module AjaxLoading
  module ApplicationHelpers
    def ajax_box_id(object, association)
      object.element_id(:show, association)
    end
    def render_js(options={})
      "'"+escape_javascript(render(options))+"'"
    end
    def growl(title, msg, type=:info)
      "$.growl('#{title}', '#{msg}', 'images/growl/#{type}.png');"
    end

    # For loading associated objects.
    def ajax_association_link(name, object, association, options={})
      #  This should go to the controller for the association class!
      ass_info = object.class.reflect_on_association(association)
      ass_controller = options[:controller] ||= ass_info.klass.name.tableize
      options[:controller] ||= ass_controller
      options[:container] ||= object.element_id(association)

      if ass_info.macro == :belongs_to
        options[:id] ||= object.send(ass_info.association_foreign_key)
        options[:action] ||= :show
      else
        options[object.class.name.foreign_key] ||= object.id
        options[:action] ||= :index
      end
      link_to name, options, :remote=> true
    end
  end
end

ActionView::Base.send :include, AjaxLoading::ApplicationHelpers

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
casey_jones-0.0.111 lib/ajax_loading/application_helpers.rb
casey_jones-0.0.110 lib/ajax_loading/application_helpers.rb
casey_jones-0.0.109 lib/ajax_loading/application_helpers.rb
casey_jones-0.0.108 lib/ajax_loading/application_helpers.rb
casey_jones-0.0.107 lib/ajax_loading/application_helpers.rb