obdev/app/controllers/forms_controller.rb

61 lines
1.3 KiB
Ruby

class FormsController < ApplicationController
before_action :set_form, only: [:show, :edit, :update, :destroy]
def index
@forms = Form.all
end
def show
end
def new
@form = Form.new
end
def create
@form = Form.new(form_params)
if @form.save
redirect_to forms_path, notice: 'Form was successfully created.'
else
render :new
end
end
def edit
end
def update
if @form.update(form_params)
redirect_to @form, notice: 'Form was successfully updated.'
else
render :edit
end
end
def destroy
@form = Form.find(params[:id])
# Manually delete or handle associated records here
@form.onboarding_items.destroy_all
@form.forms_roles.destroy_all
@form.destroy
redirect_to forms_url, notice: 'Form was successfully destroyed.'
rescue ActiveRecord::InvalidForeignKey
redirect_to forms_url, alert: 'Form could not be deleted. There are dependent records still associated.'
end
private
def set_form
@form = Form.find(params[:id])
end
def form_params
params.require(:form).permit(:name, :required, :program, role_ids: [])
end
def check_admin
redirect_to(root_path, alert: "Not authorized") unless current_user.admin?
end
end