Added Ingredient#destroy
This commit is contained in:
parent
893e2646d0
commit
9878b42655
@ -1,5 +1,6 @@
|
|||||||
class IngredientsController < ApplicationController
|
class IngredientsController < ApplicationController
|
||||||
before_action :find_project_by_project_id, only: [:index, :create]
|
before_action :find_project_by_project_id, only: [:index, :create]
|
||||||
|
before_action :find_ingredient, only: [:destroy]
|
||||||
before_action :authorize
|
before_action :authorize
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@ -20,6 +21,11 @@ class IngredientsController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
|
# FIXME: don't destroy if any meal depend on ingredient
|
||||||
|
if @ingredient.destroy
|
||||||
|
flash[:notice] = 'Deleted ingredient'
|
||||||
|
end
|
||||||
|
redirect_to project_ingredients_url(@project)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -40,4 +46,13 @@ class IngredientsController < ApplicationController
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# :find_* methods are called before :authorize,
|
||||||
|
# @project is required for :authorize to succeed
|
||||||
|
def find_ingredient
|
||||||
|
@ingredient = Ingredient.find(params[:id])
|
||||||
|
@project = @ingredient.project
|
||||||
|
rescue ActiveRecord::RecordNotFound
|
||||||
|
render_404
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -6,7 +6,7 @@ class Ingredient < ActiveRecord::Base
|
|||||||
belongs_to :project
|
belongs_to :project
|
||||||
belongs_to :ref_unit, class_name: 'Unit'
|
belongs_to :ref_unit, class_name: 'Unit'
|
||||||
|
|
||||||
has_many :nutrients, inverse_of: :ingredient
|
has_many :nutrients, inverse_of: :ingredient, dependent: :destroy
|
||||||
accepts_nested_attributes_for :nutrients, allow_destroy: true, reject_if: proc { |attrs|
|
accepts_nested_attributes_for :nutrients, allow_destroy: true, reject_if: proc { |attrs|
|
||||||
attrs['quantity_id'].blank? && attrs['amount'].blank?
|
attrs['quantity_id'].blank? && attrs['amount'].blank?
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user