【发布时间】:2012-02-04 00:32:07
【问题描述】:
我目前正在调查 ActsAsTaggableOn 是否能满足我的需求。具体来说,我有一个应用程序,用户可以在其中注册和添加人员。他们可以标记人。但是,我想将一个用户创建的标签与另一个用户创建的标签分开。
这似乎是一个常见的要求,所以我有点惊讶它不是明显的前沿和中心。这可能吗?如果可以,怎么做?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 acts-as-taggable-on
我目前正在调查 ActsAsTaggableOn 是否能满足我的需求。具体来说,我有一个应用程序,用户可以在其中注册和添加人员。他们可以标记人。但是,我想将一个用户创建的标签与另一个用户创建的标签分开。
这似乎是一个常见的要求,所以我有点惊讶它不是明显的前沿和中心。这可能吗?如果可以,怎么做?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 acts-as-taggable-on
ActsAsTaggableOn 不支持您需要的功能。我建议使用您自己的标记系统并使用 ActsAsTaggableOn 作为适当结构的示例。
我会使用类似的结构,除了标签表还包含一个用户 ID,然后您可以使用它来将标签范围限定为当前用户。
【讨论】:
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.
希望对您有所帮助。
【讨论】: