【问题标题】:Acts-as-taggable-on - Is there a method to delete a tag with ownership?Acts-as-taggable-on - 有没有一种方法可以删除具有所有权的标签?
【发布时间】:2016-01-01 14:25:09
【问题描述】:

对于我的 Rails 应用,我需要能够通过控制器操作删除当前用户拥有的标签。

根据documentation,您可以查看带有@item.tag_list 的标签,但这不会显示带有所有者的标签。为此,您应该使用@item.all_tags_list

要添加标签,您可以使用@item.tag_list.add("tag1"),要添加带有所有者的标签,您可以使用@some_user.tag(@item, :with => "tag1", :on => :tags)

要删除标签,您可以使用@item.tag_list.remove("tag1"),但我找不到删除所有者标签的方法。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 tags acts-as-taggable-on


    【解决方案1】:

    我最终使用了这些方法:

    def stringify(tag_list)
        tag_list.inject('') { |memo, tag| memo += (tag + ',') }[0..-1]
    end
    
    def remove_owned_tag 
        @some_item = Item.find(params[:id])
        owned_tag_list = @some_item.all_tag_list - @some_item.tag_list
        owned_tag_list -= [(params[:tag])]
        @tag_owner.tag(@some_item, :with => stringify(owned_tag_list), :on => :tags)
        @some_item.save   
    end
    

    我发现这个隐藏在另一个答案中,但我现在找不到它来感谢作者。

    编辑:这里是https://stackoverflow.com/a/33797298/4584963

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多