【问题标题】:Unique tags for different users不同用户的独特标签
【发布时间】:2012-02-04 00:32:07
【问题描述】:

我目前正在调查 ActsAsTaggableOn 是否能满足我的需求。具体来说,我有一个应用程序,用户可以在其中注册和添加人员。他们可以标记人。但是,我想将一个用户创建的标签与另一个用户创建的标签分开。

这似乎是一个常见的要求,所以我有点惊讶它不是明显的前沿和中心。这可能吗?如果可以,怎么做?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 acts-as-taggable-on


    【解决方案1】:

    ActsAsTaggableOn 不支持您需要的功能。我建议使用您自己的标记系统并使用 ActsAsTaggableOn 作为适当结构的示例。

    我会使用类似的结构,除了标签表还包含一个用户 ID,然后您可以使用它来将标签范围限定为当前用户。

    【讨论】:

    • 不是我想要的答案,而是我害怕的答案。谢谢!
    【解决方案2】:

    ActsAsTaggableOn 支持创建模型acts_as_tagger,它允许您检索他们已标记的标签 (https://github.com/mbleigh/acts-as-taggable-on)。你说的好像是这个。

    class User < ActiveRecord::Base
      acts_as_tagger
    end
    
    class Photo < ActiveRecord::Base
      acts_as_taggable_on :locations
    end
    
    @some_user.tag(@some_photo, :with => "paris, normandy", :on => :locations)
    @some_user.owned_taggings
    @some_user.owned_tags
    @some_photo.locations_from(@some_user) # => ["paris", "normandy"]
    @some_photo.owner_tags_on(@some_user, :locations) # => [#<ActsAsTaggableOn::Tag id: 1, name: "paris">...]
    @some_photo.owner_tags_on(nil, :locations) # => Ownerships equivalent to saying @some_photo.locations
    @some_user.tag(@some_photo, :with => "paris, normandy", :on => :locations, :skip_save => true) #won't save @some_photo object
    

    尤其是一行

    @some_photo.locations_from(@some_user)...etc.
    

    希望对您有所帮助。

    【讨论】:

    • 我认为这不适用于我的情况,因为两个用户可能有一个名称相同但属性不同的标签(因为我将扩展标签模型以包含事物像一种颜色)。
    猜你喜欢
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多