Module: Effective::CrudController

Extended by:
ActiveSupport::Concern
Includes:
Actions, Paths, PermittedParams, Respond, Save, Submits
Included in:
WizardController
Defined in:
app/controllers/concerns/effective/crud_controller.rb,
app/controllers/concerns/effective/crud_controller/dsl.rb,
app/controllers/concerns/effective/crud_controller/save.rb,
app/controllers/concerns/effective/crud_controller/paths.rb,
app/controllers/concerns/effective/crud_controller/actions.rb,
app/controllers/concerns/effective/crud_controller/respond.rb,
app/controllers/concerns/effective/crud_controller/submits.rb,
app/controllers/concerns/effective/crud_controller/permitted_params.rb

Defined Under Namespace

Modules: Actions, ClassMethods, Dsl, Paths, PermittedParams, Respond, Save, Submits

Constant Summary

Constants included from PermittedParams

PermittedParams::BLACKLIST

Instance Method Summary collapse

Methods included from Save

#commit_action, #duplicate_resource, #reload_resource, #resource_flash, #save_resource

Methods included from Respond

#respond_with_error, #respond_with_success

Methods included from PermittedParams

#resource_active_model_permitted_params, #resource_permitted_params

Methods included from Paths

#referer_redirect_path, #resource_action_path, #resource_destroy_path, #resource_duplicate_path, #resource_edit_path, #resource_index_path, #resource_new_path, #resource_redirect_path, #resource_show_path, #specific_redirect_path?

Methods included from Actions

#collection_action, #create, #destroy, #edit, #index, #member_action, #new, #show, #update

Instance Method Details

#effective_resourceObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'app/controllers/concerns/effective/crud_controller.rb', line 56

def effective_resource
  @_effective_resource ||= begin
    relation = instance_exec(&resource_scope_relation) if respond_to?(:resource_scope_relation)

    if respond_to?(:resource_scope_relation) && !relation.kind_of?(ActiveRecord::Relation)
      raise('resource_scope must return an ActiveRecord::Relation')
    end

    resource = Effective::Resource.new(controller_path, relation: relation)

    unless resource.relation.kind_of?(ActiveRecord::Relation) || resource.active_model?
      raise("unable to build resource_scope for #{resource.klass || 'unknown klass'}. Please name your controller to match an existing model, or manually define a resource_scope.")
    end

    resource
  end
end

#resourceObject



40
41
42
# File 'app/controllers/concerns/effective/crud_controller.rb', line 40

def resource # @thing
  instance_variable_get("@#{resource_name}")
end

#resource=(instance) ⇒ Object



44
45
46
# File 'app/controllers/concerns/effective/crud_controller.rb', line 44

def resource=(instance)
  instance_variable_set("@#{resource_name}", instance)
end

#resourcesObject



48
49
50
# File 'app/controllers/concerns/effective/crud_controller.rb', line 48

def resources # @things
  send(:instance_variable_get, "@#{resource_plural_name}")
end

#resources=(instance) ⇒ Object



52
53
54
# File 'app/controllers/concerns/effective/crud_controller.rb', line 52

def resources=(instance)
  send(:instance_variable_set, "@#{resource_plural_name}", instance)
end