forked from fixin.me/fixin.me
45 lines
1.1 KiB
Ruby
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
|