You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- class Api::V1::ProjectTopicsController < Api::V1::BaseController
-
- def index
- @project_topics = ProjectTopic
- @project_topics = @project_topics.ransack(name_cont: params[:keyword]) if params[:keyword].present?
- # @project_topics = @project_topics.includes(:projects)
- @project_topics = kaminary_select_paginate(@project_topics)
- end
-
- def create
- ActiveRecord::Base.transaction do
- @project = Project.find_by_id(create_params[:project_id])
- return render_not_found unless @project.present?
- return render_error("请输入项目搜索标签名称.") unless create_params[:name].present?
-
- @project_topic = ProjectTopic.find_or_create_by!(name: create_params[:name].downcase)
- @project_topic_ralate = @project_topic.project_topic_ralates.find_or_create_by!(project_id: create_params[:project_id])
-
- if @project_topic.present? && @project_topic_ralate.present?
- render_ok
- else
- render_error("项目关联搜索标签失败.")
- 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
- def create_params
- params.permit(:project_id, :name)
- end
- end
|