module RailsStuff::ResourcesController::StiHelpers::ClassMethods
Attributes
resource_class_by_type[W]
use_resource_class_for_invalid_type[RW]
Public Instance Methods
permit_attrs_for(klass, *attrs)
click to toggle source
Permits attrs only for specific class.
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 45 def permit_attrs_for(klass, *attrs) permitted_attrs_for[klass].concat attrs end
permitted_attrs_for()
click to toggle source
Class-level accessor to permitted attributes for specisic class.
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 40 def permitted_attrs_for @permitted_attrs_for ||= Hash.new { |h, k| h[k] = [] } end
resource_class_by_type()
click to toggle source
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.
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 16 def resource_class_by_type @resource_class_by_type ||= if resource_class.respond_to?(:types_list) resource_class.types_list else resource_class.descendants end.index_by(&:name) end
resource_class_for(name)
click to toggle source
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 27 def resource_class_for(name) return resource_class unless name resource_class_by_type[name] || if use_resource_class_for_invalid_type resource_class else raise(InvalidType, "No type mapped for #{name.inspect}") end end