Module: RailsStuff::ResourcesController::StiHelpers::ClassMethods

Defined in:
lib/rails_stuff/resources_controller/sti_helpers.rb

Instance Method Summary collapse

Instance Method Details

#permit_attrs_for(klass, *attrs) ⇒ Object

Permits attrs only for specific class.



30
31
32
# File 'lib/rails_stuff/resources_controller/sti_helpers.rb', line 30

def permit_attrs_for(klass, *attrs)
  permitted_attrs_for[klass].concat attrs
end

#permitted_attrs_forObject

Class-level accessor to permitted attributes for specisic class.



25
26
27
# File 'lib/rails_stuff/resources_controller/sti_helpers.rb', line 25

def permitted_attrs_for
  @permitted_attrs_for ||= Hash.new { |h, k| h[k] = [] }
end

#resource_class_by_typeObject

Returns hash which is used to get subclass for requested type.

By default it uses ‘.types_list` or `.descendants` to get list of classes and indexes them by class names.



14
15
16
17
18
19
20
21
22
# File 'lib/rails_stuff/resources_controller/sti_helpers.rb', line 14

def resource_class_by_type
  @resource_class_by_type ||= begin
    if resource_class.respond_to?(:types_list)
      resource_class.types_list
    else
      resource_class.descendants
    end.index_by(&:name)
  end
end