class ProjectsController < ApplicationController before_action :set_project, only: %i[ show edit update destroy ] def index @projects = Project.all end def show end def new @project = Project.new end def edit end def create @project = Project.new(project_params) if @project.save ProcessTranscriptionJob.perform_later(@project.id) redirect_to @project, notice: "Project was successfully created." else render :new, status: :unprocessable_entity end end def update if @project.update(project_params) @project.pending! ProcessTranscriptionJob.perform_later(@project.id) redirect_to @project, notice: "Project was successfully updated." else render :edit, status: :unprocessable_entity end end def destroy @project.destroy redirect_to projects_url, notice: "Project was successfully destroyed." end private def set_project @project = Project.find(params[:id]) end def project_params params.require(:project).permit(:name, :transcription, :file) end end