module RailsStuff::ResourcesController::StiHelpers
Helper methods for controllers which works with STI models.
Protected Instance Methods
build_resource(attrs = resource_params)
click to toggle source
Instantiates object using class_from_request.
Calls superclass method
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 66 def build_resource(attrs = resource_params) @_resource = super.becomes!(class_from_request) end
class_from_request()
click to toggle source
Returns model class depending on `type` attr in params. If resource is requested by id, it returns its class.
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 54 def class_from_request @class_from_request ||= if params.key?(:id) resource.class else key = self.class.resource_param_name name = params.permit(key => [:type])[key].try!(:[], :type) self.class.resource_class_for(name) end end
permitted_attrs()
click to toggle source
Merges default attrs with attrs for specific class.
Calls superclass method
# File lib/rails_stuff/resources_controller/sti_helpers.rb, line 71 def permitted_attrs super + self.class.permitted_attrs_for[class_from_request] end