不同用户的唯一标签

时间:2012-02-03 15:06:04

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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.

希望有所帮助。