|
|
|
@ -14,6 +14,7 @@ class TagsController < ApplicationController
|
|
|
|
|
include AttachmentsHelper
|
|
|
|
|
include ContestsHelper
|
|
|
|
|
include ActsAsTaggableOn::TagsHelper
|
|
|
|
|
include TagsHelper
|
|
|
|
|
helper :projects
|
|
|
|
|
helper :courses
|
|
|
|
|
helper :tags
|
|
|
|
@ -189,6 +190,40 @@ class TagsController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 只删除某个对象的该tag
|
|
|
|
|
def remove_tag_new
|
|
|
|
|
@obj = nil
|
|
|
|
|
@object_flag = nil
|
|
|
|
|
|
|
|
|
|
if request.get?
|
|
|
|
|
# 获取传过来的tag_id taggable_id 和 taggable_type,通过2者确定要删除tag的对象
|
|
|
|
|
@tag_name = params[:tag_name]
|
|
|
|
|
@tag_id = (ActsAsTaggableOn::Tag.find_by_name(@tag_name)).id
|
|
|
|
|
@taggable_id = params[:taggable_id] # 当做参数传时对象会变成字符串
|
|
|
|
|
@taggable_type = numbers_to_object_type(params[:taggable_type])
|
|
|
|
|
|
|
|
|
|
@obj = get_object(@taggable_id,params[:taggable_type])
|
|
|
|
|
@object_flag = params[:taggable_type]
|
|
|
|
|
|
|
|
|
|
# if can_remove_tag?(User.current,@taggable_id,@taggable_type)
|
|
|
|
|
|
|
|
|
|
@taggings = ActsAsTaggableOn::Tagging.find_by_tag_id_and_taggable_id_and_taggable_type(@tag_id,@taggable_id,@taggable_type)
|
|
|
|
|
|
|
|
|
|
unless @taggings.nil?
|
|
|
|
|
@taggings.delete
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 是否还有其他记录 引用了 tag_id
|
|
|
|
|
@tagging = ActsAsTaggableOn::Tagging.find_by_tag_id(@tag_id)
|
|
|
|
|
# 如果taggings表中记录已经不存在 ,那么检查tags表 作删除动作
|
|
|
|
|
if @tagging.nil?
|
|
|
|
|
@tag = ActsAsTaggableOn::Tag.find_by_id(@tag_id)
|
|
|
|
|
@tag.delete unless @tag.nil?
|
|
|
|
|
end
|
|
|
|
|
# end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def tag_save
|
|
|
|
|
@tags = params[:tag_for_save][:name]
|
|
|
|
|
@obj_id = params[:tag_for_save][:object_id]
|
|
|
|
|