Уникальные теги для разных пользователей - PullRequest
0 голосов
/ 03 февраля 2012

В настоящее время я изучаю, будет ли ActsAsTaggableOn работать для моих нужд. В частности, у меня есть приложение, в котором пользователи могут зарегистрироваться и добавлять людей. Они могут пометить людей. Однако я хочу отделить теги, которые создает один пользователь, от тегов, которые создает другой пользователь.

Кажется, это было бы обычным требованием, поэтому я немного удивлен, что это не что-то явно переднее и центральное. Можно ли это сделать, и если да, то как?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

ActsAsTaggableOn не поддерживает необходимую вам функциональность. Я бы порекомендовал использовать собственную систему тегов и использовать ActsAsTaggableOn в качестве примера соответствующих структур.

Я хотел бы использовать аналогичную структуру, за исключением того, что таблица тегов также содержит идентификатор пользователя, который можно затем использовать для выделения тегов текущему пользователю.

0 голосов
/ 03 февраля 2012

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.

Надеюсь, это поможет.

...