我目前正在调查ActsAsTaggableOn是否能够满足我的需求。具体来说,我有一个用户可以注册和添加人员的应用程序。他们可以标记人。但是,我想将一个用户创建的标记与另一个用户创建的标记隔离开来。
这似乎是一个常见的要求,所以我有点惊讶它不是明显的前沿和中心。这可能吗,如果可以,怎么做?
谢谢!
答案 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.
希望有所帮助。