| @@ -24,6 +24,21 @@ class Api::V1::ProjectTopicsController < Api::V1::BaseController | |||||
| end | end | ||||
| 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 | private | ||||
| def create_params | def create_params | ||||
| params.permit(:project_id, :name) | params.permit(:project_id, :name) | ||||
| @@ -130,6 +130,7 @@ class ProjectsController < ApplicationController | |||||
| # 临时特殊处理修改website、lesson_url操作方法 | # 临时特殊处理修改website、lesson_url操作方法 | ||||
| if project_params.has_key?("website") | if project_params.has_key?("website") | ||||
| if params[:project_topic_names].present? && params[:project_topic_names].is_a?(Array) | 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| | params[:project_topic_names].each do |name| | ||||
| project_topic = ProjectTopic.find_or_create_by!(name: name.downcase) | project_topic = ProjectTopic.find_or_create_by!(name: name.downcase) | ||||
| project_topic.project_topic_ralates.find_or_create_by!(project: @project) | project_topic.project_topic_ralates.find_or_create_by!(project: @project) | ||||
| @@ -20,7 +20,7 @@ defaults format: :json do | |||||
| scope ':repo' do | scope ':repo' do | ||||
| # projects | # projects | ||||
| resource :projects, path: '/', only: [:show, :update, :edit, :destroy] do | |||||
| resource :projects, path: '/', only: [:show, :update, :edit] do | |||||
| collection do | collection do | ||||
| get :compare | get :compare | ||||
| get :blame | get :blame | ||||
| @@ -97,7 +97,7 @@ defaults format: :json do | |||||
| end | end | ||||
| resources :projects, only: [:index] | resources :projects, only: [:index] | ||||
| resources :project_topics, only: [:index, :create] | |||||
| resources :project_topics, only: [:index, :create, :destroy] | |||||
| end | end | ||||