fixin.me/app/controllers/quantities_controller.rb

45 lines
1.1 KiB
Ruby

class QuantitiesController < ApplicationController
before_action only: :new do
find_quantity if params[:id].present?
end
before_action :find_quantity, only: [:edit, :update, :rebase, :destroy]
before_action except: :index do
raise AccessForbidden unless current_user.at_least(:active)
end
def index
@quantities = current_user.quantities.includes(:parent).includes(:subquantities).ordered
end
def new
@quantity = current_user.quantities.new(parent: @quantity)
end
def create
@quantity = current_user.quantities.new(quantity_params)
if @quantity.save
@before, @quantity, @ancestors = @quantity.succ_and_ancestors
flash.now[:notice] = t('.success', quantity: @quantity)
else
render :new
end
end
def destroy
@quantity.destroy!
@ancestors = @quantity.ancestors
flash.now[:notice] = t('.success', quantity: @quantity)
end
private
def quantity_params
params.require(:quantity).permit(Quantity::ATTRIBUTES)
end
def find_quantity
@quantity = Quantity.find_by!(id: params[:id], user: current_user)
end
end