Module: CrudActions::Actions
- Extended by:
- ActiveSupport::Concern
- Includes:
- ActionsHelper, BaseHelper
- Defined in:
- lib/crud_actions/actions.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- DEFAULT_ACTIONS =
[:index, :new, :create, :edit, :update, :show, :destroy]
Class Method Summary collapse
Instance Method Summary collapse
- #create(options = { notice: nil, alert: nil }) ⇒ Object
- #destroy(options = { notice: nil, alert: nil }) ⇒ Object
- #edit ⇒ Object
- #index(options = { order: nil, includes: nil }) ⇒ Object
- #new ⇒ Object
- #show ⇒ Object
- #update(options = { notice: nil, alert: nil }) ⇒ Object
Methods included from ActionsHelper
Class Method Details
.included(class_name) ⇒ Object
13 14 15 16 17 |
# File 'lib/crud_actions/actions.rb', line 13 def self.included(class_name) model_name = class_name.to_s.split('Controller').first.split('::').last.singularize class_name.instance_variable_set('@resource_class', model_name.constantize) class_name.instance_variable_set('@resource_name', model_name.underscore) end |
Instance Method Details
#create(options = { notice: nil, alert: nil }) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/crud_actions/actions.rb', line 35 def create( = { notice: nil, alert: nil }) resource_name = self.class.instance_variable_get('@resource_name') resource_class = self.class.instance_variable_get('@resource_class') instance_variable_set("@#{ resource_name }", resource_class.new(permitted_params_for_create)) resource = instance_variable_get("@#{ resource_name }") if resource.public_send(:save) flash[:notice] = [:notice] || "#{ resource_class.to_s } created successfully." redirect_to ([:redirect_to] || path_maker) else flash[:alert] = [:alert] || resource.errors..join(', ') render action: :new end end |
#destroy(options = { notice: nil, alert: nil }) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/crud_actions/actions.rb', line 68 def destroy( = { notice: nil, alert: nil }) resource_name = self.class.instance_variable_get('@resource_name') resource_class = self.class.instance_variable_get('@resource_class') resource = instance_variable_get("@#{ resource_name }") if resource.public_send(:destroy) flash[:notice] = [:notice] || "#{ resource_class.to_s } destroyed successfully." else flash[:alert] = [:alert] || resource.errors..join(', ') end redirect_to ([:redirect_to] || path_maker) end |
#edit ⇒ Object
49 50 |
# File 'lib/crud_actions/actions.rb', line 49 def edit end |
#index(options = { order: nil, includes: nil }) ⇒ Object
26 27 28 |
# File 'lib/crud_actions/actions.rb', line 26 def index( = { order: nil, includes: nil }) index_helper(controller_name, ) end |
#new ⇒ Object
30 31 32 33 |
# File 'lib/crud_actions/actions.rb', line 30 def new resource_name = self.class.instance_variable_get('@resource_name') instance_variable_set("@#{ resource_name }", self.class.instance_variable_get('@resource_class').new) end |
#show ⇒ Object
52 53 |
# File 'lib/crud_actions/actions.rb', line 52 def show end |
#update(options = { notice: nil, alert: nil }) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/crud_actions/actions.rb', line 55 def update( = { notice: nil, alert: nil }) resource_name = self.class.instance_variable_get('@resource_name') resource_class = self.class.instance_variable_get('@resource_class') resource = instance_variable_get("@#{ resource_name }") if resource.public_send(:update, permitted_params_for_update) flash[:notice] = [:notice] || "#{ resource_class.to_s } updated successfully." redirect_to ([:redirect_to] || path_maker) else flash[:alert] = [:alert] || resource.errors..join(', ') render action: :edit end end |