module CrudActions::Actions

Constants

DEFAULT_ACTIONS

Public Class Methods

included(class_name) click to toggle source
# 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

Public Instance Methods

create(options = { notice: nil, alert: nil }) click to toggle source
# File lib/crud_actions/actions.rb, line 35
def create(options = { 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] = options[:notice] || "#{ resource_class.to_s } created successfully."
    redirect_to (options[:redirect_to] || path_maker)
  else
    flash[:alert] = options[:alert] || resource.errors.full_messages.join(', ')
    render action: :new
  end
end
destroy(options = { notice: nil, alert: nil }) click to toggle source
# File lib/crud_actions/actions.rb, line 68
def destroy(options = { 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] = options[:notice] || "#{ resource_class.to_s } destroyed successfully."
  else
    flash[:alert] = options[:alert] || resource.errors.full_messages.join(', ')
  end
  redirect_to (options[:redirect_to] || path_maker)
end
edit() click to toggle source
# File lib/crud_actions/actions.rb, line 49
def edit
end
index(options = { order: nil, includes: nil }) click to toggle source
# File lib/crud_actions/actions.rb, line 26
def index(options = { order: nil, includes: nil })
  index_helper(controller_name, options)
end
new() click to toggle source
# 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() click to toggle source
# File lib/crud_actions/actions.rb, line 52
def show
end
update(options = { notice: nil, alert: nil }) click to toggle source
# File lib/crud_actions/actions.rb, line 55
def update(options = { 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] = options[:notice] || "#{ resource_class.to_s } updated successfully."
    redirect_to (options[:redirect_to] || path_maker)
  else
    flash[:alert] = options[:alert] || resource.errors.full_messages.join(', ')
    render action: :edit
  end
end