diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index e3235d2..0573e65 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -1,10 +1,48 @@ 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 + redirect_to @project, notice: "Project successfully created." + else + render :new, status: :unprocessable_entity + end + end + + def update + if @project.update(project_params) + redirect_to @project, notice: "Project successfully updated.", status: :see_other + else + render :edit, status: :unprocessable_entity + end + end + + def destroy + @project.destroy! + redirect_to projects_path, notice: "Project successfully deleted.", status: :see_other + end + + private + def set_project @project = Project.find(params[:id]) end + def project_params + params.expect(project: [ :name ]) + end end diff --git a/app/models/project.rb b/app/models/project.rb index 9c7fe3f..3f00e16 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1,2 +1,3 @@ class Project < ApplicationRecord + validates :name, presence: true end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 0ec8c95..3a65097 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -24,6 +24,9 @@
+ <% if flash[:notice] %> +<%= flash[:notice] %>
+ <% end %> <%= yield %>