2012-02-06 6 views
0

私のアプリケーションにタグ付け機能を追加したいと思います。 https://github.com/mbleigh/acts-as-taggable-onmongodbとレールのActAsTaggableOn 3

が、私は私のGemfileに次の行を追加しました::そう、私はacts_as_taggable_on使用しています

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

と私は私のユーザーモデルで、次の行を追加する場合:

acts_as_taggable_on 

それは私に、このエラーが発生します:

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

私は間違っていると教えてください。

答えて

6

アクティブなレコードを使用するリレーショナルデータベースを使用してタグ付けできるように構築されているため、このgemはmongoidおよびmongodbで動作しません。

良いニュースは、これはmongoidで行うのが非常に簡単だということです。 acts_as_taggable_onとしてリストされているものの名​​前を付けた新しいArrayフィールドを追加してください。 acts_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' 
+0

ありがとう、それは便利でしたが、どのように私が属するすべてのユーザーを見つけることができますか特定のタグ?またはすべてのユーザーが指定されたタグのいずれかに属していますか? acts_as_taggable_onのUser.tagged_with(["awesome"、 "cool"]、:any => true)と同じですか? – d34th4ck3r

+2

User.any_in(タグ:["awesome"、 "cool"]) –

+0

入力を入力するフォームの記述方法を教えてください。 – d34th4ck3r