d34*_*k3r 0 mongodb acts-as-taggable-on mongoid ruby-on-rails-3
我想在我的应用程序中添加标记工具.所以,我正在使用acts_as_taggable_on:https://github.com/mbleigh/acts-as-taggable-on
我添加了以下行我的Gemfile:
gem 'acts-as-taggable-on', '~> 2.2.2'
Run Code Online (Sandbox Code Playgroud)
当我在我的用户模型中添加以下行时:
acts_as_taggable_on
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
undefined local variable or method `acts_as_taggable_on' for User:Class
Run Code Online (Sandbox Code Playgroud)
请告诉我,我做错了什么?
该gem不适用于mongoid和mongodb,因为它是为了允许使用活动记录使用关系数据库进行标记而构建的.
好消息是,在mongoid中这很简单.只需添加一个以您列出的act_as_taggable_on命名的新数组字段.如果您还有acts_as_taggable,也请包含通用标记字段.
如果您打算使用如下所示的模型:
class User < ActiveRecord::Base
acts_as_taggable
acts_as_taggable_on :skills, :interests
end
Run Code Online (Sandbox Code Playgroud)
你会用mongoid像这样构建它:
class User
include Mongoid::Document
field :tags, type: Array
field :skills, type: Array
field :interests, type: Array
end
Run Code Online (Sandbox Code Playgroud)
然后,当您想要保存标记时,请假设您感兴趣,您将执行以下操作:
@user.interests << 'computers'
Run Code Online (Sandbox Code Playgroud)