新增:项目搜索标签删除逻辑

This commit is contained in:
yystopf 2023-04-06 15:40:01 +08:00
parent 08f89fd113
commit 7a6d549fa0
3 changed files with 18 additions and 2 deletions

View File

@ -24,6 +24,21 @@ class Api::V1::ProjectTopicsController < Api::V1::BaseController
end
end
def destroy
ActiveRecord::Base.transaction do
@project = Project.find_by_id(create_params[:project_id])
return render_not_found unless @project.present?
@project_topic = ProjectTopic.find_by_id(params[:id])
@project_topic_ralate = @project_topic.project_topic_ralates.find_by(project_id: @project.id)
if @project_topic_ralate.destroy!
render_ok
else
render_error("项目取消关联搜索标签失败.")
end
end
end
private
def create_params
params.permit(:project_id, :name)

View File

@ -130,6 +130,7 @@ class ProjectsController < ApplicationController
# 临时特殊处理修改website、lesson_url操作方法
if project_params.has_key?("website")
if params[:project_topic_names].present? && params[:project_topic_names].is_a?(Array)
ProjectTopicRalate.where(project: @project).destroy_all
params[:project_topic_names].each do |name|
project_topic = ProjectTopic.find_or_create_by!(name: name.downcase)
project_topic.project_topic_ralates.find_or_create_by!(project: @project)

View File

@ -20,7 +20,7 @@ defaults format: :json do
scope ':repo' do
# projects
resource :projects, path: '/', only: [:show, :update, :edit, :destroy] do
resource :projects, path: '/', only: [:show, :update, :edit] do
collection do
get :compare
get :blame
@ -97,7 +97,7 @@ defaults format: :json do
end
resources :projects, only: [:index]
resources :project_topics, only: [:index, :create]
resources :project_topics, only: [:index, :create, :destroy]
end