:destroy
General Setup & Layout
Example Setup:
class ItemsController < ApplicationController
before_action :set_item, only: [:destroy]
def destroy
# LOCAL HANDLING
##################
# Role-based or permission-based check
unless @current_user_role == "admin" || @item.created_by == @current_user.id
return render json: { error: 'Permission denied' }, status: :forbidden
end
# Additional checks or preparations if any
# ...
# ABSTRACTED/REUSABLE HANDLING (e.g. Concerns, etc.)
##################
# CONCERNS
# Maybe some logging or auditing before deletion
# ...
# OTHER
# Additional operations or extensions
# ...
# EXECUTE & RESPOND
##################
if @item.destroy
render json: { message: 'Item successfully deleted' }
else
render json: { error: 'Failed to delete item' }, status: :unprocessable_entity
end
end
# ... Other actions ...
private
def set_item
@item = Item.find(params[:id])
rescue ActiveRecord::RecordNotFound
render json: { error: 'Item not found' }, status: :not_found
end
end
Last updated