新增:项目搜索标签删除逻辑
This commit is contained in:
parent
08f89fd113
commit
7a6d549fa0
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue