Module: RailsStuff::ResourcesController::BasicHelpers::ClassMethods

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#after_save_actionObject

Defines action to redirect after resource was saved. Default to ‘:show`.



27
28
29
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 27

def after_save_action
  @after_save_action
end

#permitted_attrsObject

Class-level permitted attributes.

‘attr_reader`, default to `[]`.



45
46
47
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 45

def permitted_attrs
  @permitted_attrs ||= []
end

#resource_classObject

Resource class for controller. Default to class, based on demodulized controller name.



31
32
33
34
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 31

def resource_class
  @resource_class ||=
    Object.const_get(name.to_s.demodulize.sub(/Controller$/, '').singularize)
end

#resource_param_nameObject

Key to lookup for resource attributes in ‘params`. Default to class’es ‘param_key`.



38
39
40
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 38

def resource_param_name
  @resource_param_name ||= resource_class.model_name.param_key
end

Instance Method Details

#authorize_resourceObject

Prevent CanCan’s implementation.



66
67
68
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 66

def authorize_resource
  raise 'use `before_action :authorize_resource!` instead'
end

#has_scopeObject

This method overrides default ‘has_scope`. It calls default implementation and overrides `collection` to use `apply_scope`.



56
57
58
59
60
61
62
63
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 56

def has_scope(*)
  super.tap do
    define_method :collection do
      @_collection ||= apply_scopes(source_for_collection)
    end
    protected :collection
  end
end

#permit_attrs(*attrs) ⇒ Object

Concats ‘@permitted_attrs` variable with given attrs.



50
51
52
# File 'lib/rails_stuff/resources_controller/basic_helpers.rb', line 50

def permit_attrs(*attrs)
  permitted_attrs.concat attrs
end