From cfabbdf584a0d20f2eea13388a4fca23c2a2059b Mon Sep 17 00:00:00 2001 From: demesameneshoa Date: Thu, 21 Dec 2023 02:16:07 +0300 Subject: [PATCH] feat: add recipe foods controller to create and remove recipe food --- app/controllers/recipe_foods_controller.rb | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 app/controllers/recipe_foods_controller.rb diff --git a/app/controllers/recipe_foods_controller.rb b/app/controllers/recipe_foods_controller.rb new file mode 100644 index 0000000..63f902f --- /dev/null +++ b/app/controllers/recipe_foods_controller.rb @@ -0,0 +1,50 @@ +class RecipeFoodsController < ApplicationController + +def index + #match the recipe id with the recipe_foods recipe_id + @recipe_foods = RecipeFood.where(recipe_id: params[:recipe_id]) + @recipe = Recipe.find(params[:recipe_id]) + @food = Food.where(food_id: params[:food_id]) +end + +def new + @recipe_food = RecipeFood.new + @recipe_id = params[:recipe_id] + @foods = Food.all +end + +def create + @recipe_food = RecipeFood.new(recipe_food_params) + if @recipe_food.save + flash[:success] = 'Ingredient was successfully added.' + redirect_to recipe_path(id: @recipe_food.recipe_id) + else + render :new, alert: 'Failed to add ingredient' + end +end + +def update + respond_to do |format| + if @recipe_food.update(recipe_food_params) + flash[:success] = 'Recipe was successfully updated.' + format.html { redirect_to recipe_food_path(@recipe_food) } + else + flash[:danger] = 'Recipe was not updated.' + format.html { render :edit, status: :unprocessable_entity } + end + end +end + +def destroy + @recipe_id = params[:recipe_id] + @recipe_food = RecipeFood.find(params[:id]) + return unless @recipe_food.destroy + flash[:success] = 'Ingredient was successfully deleted.' + redirect_to recipe_path(id: @recipe_food.recipe_id) +end +private + +def recipe_food_params + params.require(:recipe_food).permit(:quantity, :recipe_id, :food_id) +end +end \ No newline at end of file