module Weeler::ActionController::Acts::Restful::InstanceMethodsOnActivation

These methods only activate if 'acts_as_restful' is called

Public Instance Methods

create() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 83
def create
  @item = model.new(items_params)
  if @item.save
    after_create_action
  else
    render :action => 'new'
  end
end
destroy() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 100
def destroy
  @item.destroy
  after_destroy_action
end
edit() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 75
def edit
  load_translations
end
index() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 60
def index
  @paginate = paginate
  @items = load_collection
  @items = @items.page(params[:page]).per(@paginate) if @paginate.present? && @paginate > 0
end
new() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 66
def new
  @item = model.new
  load_translations
end
order() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 79
def order
  sort
end
remove_image() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 105
def remove_image
  if @item.image.present?
    @item.image.destroy
    @item.image_file_name = nil
    @item.save
  end
  redirect_to({ action: :edit, id: @item.id}, {:notice => "Image successfully removed"})
end
show() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 71
def show
  render :edit
end
update() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 92
def update
  if @item.update(items_params)
    after_update_action
  else
    render :action => 'edit'
  end
end

Protected Instance Methods

collection() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 127
def collection; end
item_humanized_name() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 133
def item_humanized_name
  "#{parameterized_name.humanize}"
end
items_params() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 116
def items_params
  if permited_params.is_a? Proc
    permited_params.call(params)
  elsif permited_params.blank?
    warning_suggestion = params[parameterized_name.to_sym].is_a?(Hash) ? params[parameterized_name.to_sym].keys.map{ |k| k.to_sym } : "permit_params:"
    warn "[UNPERMITED PARAMS] To permit #{params[parameterized_name.to_sym].to_unsafe_h.inspect} params, add 'permit_params: #{warning_suggestion}' option to 'acts_as_restful'"
  else
    params.require(parameterized_name.to_sym).permit(permited_params)
  end
end
load_translations() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 137
def load_translations
  if @item.respond_to? :translations
    I18n.available_locales.each { |locale| @item.translations.find_or_initialize_by(locale: locale) }
  end
end
parameterized_name() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 129
def parameterized_name
  "#{model.to_s.underscore.downcase}"
end

Private Instance Methods

after_create_action() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 145
def after_create_action
  redirect_to( after_create_path, {:notice => "Successfully created item"} )
end
after_create_path() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 157
def after_create_path
  { action: :edit, id: @item.id }
end
after_destroy_action() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 153
def after_destroy_action
  redirect_to( after_destroy_path, {:notice => "Successfully destroyed item"})
end
after_destroy_path() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 165
def after_destroy_path
  { action: :index }
end
after_update_action() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 149
def after_update_action
  redirect_to( after_update_path, {:notice => "Successfully updated item"} )
end
after_update_path() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 161
def after_update_path
  { action: :edit, id: @item.id }
end
load_collection() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 173
def load_collection
  return @load_collection if @load_collection.present?
  if model
    if collection
      @load_collection = collection
    else
      @load_collection = model.all
      if order_by.present?
        @load_collection.order(order_by)
      elsif model.new.has_attribute?(:sequence)
        @load_collection.order(:sequence)
      else
        @load_collection.order(created_at: :desc)
      end
    end
  end
end
load_record() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 191
def load_record
  @item = model.find(params[:id])
end
model() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 169
def model
  model
end
sort() click to toggle source
# File lib/weeler/action_controller/acts/restful.rb, line 195
def sort
  items_sequence = URI.decode_www_form(params[:orders]).map{ |i| i[1] }
  items_sequence.each_with_index do |sequence_item_id, index|
    item = model.find_by id: sequence_item_id
    item.sequence = index
    item.save!
  end
  render plain: 'all ok'
end