ActAsTaggableOn в mongodb и rails 3

Я хочу добавить средство тегирования в свое приложение. Итак, я использую act_as_taggable_on: https://github.com/mbleigh/acts-as-taggable-on

Я добавил следующую строку в свой Gemfile:

gem 'acts-as-taggable-on', '~> 2.2.2'

и когда я добавляю следующую строку в свою пользовательскую модель:

acts_as_taggable_on

Это дает мне эту ошибку:

undefined local variable or method `acts_as_taggable_on' for User:Class

Будьте добры, подскажите, что я делаю не так?


person d34th4ck3r    schedule 06.02.2012    source источник


Ответы (1)


Этот драгоценный камень не будет работать с mongoid и mongodb, потому что он создан, чтобы разрешать тегирование с использованием реляционной базы данных с использованием активной записи.

Хорошая новость заключается в том, что это очень просто сделать в mongoid. Просто добавьте новое поле массива с именем, которое вы бы указали как «acts_as_taggable_on». Если у вас также есть act_as_taggable, включите общее поле тегов.

Если бы у вас была модель, которая выглядела бы так:

class User < ActiveRecord::Base
  acts_as_taggable
  acts_as_taggable_on :skills, :interests
end

Вы бы построили это так с mongoid:

class User
  include Mongoid::Document
  field :tags, type: Array
  field :skills, type: Array
  field :interests, type: Array
end

Затем, когда вы хотите сохранить тег, скажем, в качестве интереса, вы должны сделать следующее:

@user.interests << 'computers'
person Tyler Brock    schedule 06.02.2012
comment
Спасибо, это было полезно, но как мне найти всех пользователей, принадлежащих к определенному тегу? или все пользователи принадлежат к любому из заданных тегов? Так же, как: User.tagged_with([круто, круто], :any =› true) в act_as_tagged_on? - person d34th4ck3r; 07.02.2012
comment
Подскажите, пожалуйста, как написать форму для ввода в массив? - person d34th4ck3r; 08.02.2012