【问题标题】:mongoid_fulltext error while rake db:create_indexes... undefined method `db' for #<Moped::Collectionrake db:create_indexes 时出现 mongoid_fulltext 错误...#<Moped::Collection 的未定义方法“db”
【发布时间】:2013-03-25 05:04:32
【问题描述】:

将 rails 与 mongo-1.8.3、mongoid 3.1.2 一起使用

我想组合许多字符串字段并创建一个全文索引.. 但在初始设置期间我收到此错误

我的模型如下所示:-

class User
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::FullTextSearch

  field :name, type: String
  fulltext_search_in :name

rake db:create_indexes 出错

rake aborted!
undefined method `db' for #<Moped::Collection:0x007fba5c768f18>
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid_fulltext-       0.5.8/lib/mongoid_fulltext.rb:71:in `fulltext_search_ensure_indexes'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid_fulltext-0.5.8/lib/mongoid_fulltext.rb:66:in `block in create_fulltext_indexes'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid_fulltext-0.5.8/lib/mongoid_fulltext.rb:65:in `each_pair'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid_fulltext-0.5.8/lib/mongoid_fulltext.rb:65:in `create_fulltext_indexes'
 /Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid_fulltext-0.5.8/lib/mongoid_indexes.rb:7:in `create_indexes'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid-3.1.2/lib/rails/mongoid.rb:21:in `block in create_indexes'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid-3.1.2/lib/rails/mongoid.rb:18:in `each'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid-3.1.2/lib/rails/mongoid.rb:18:in `create_indexes'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/mongoid-3.1.2/lib/mongoid/railties/database.rake:71:in `block (3 levels) in <top (required)>'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:228:in `call'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:228:in `block in execute'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:223:in `each'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain'
/Users/akhil/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:143:in `invoke_task'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:101:in `block (2 levels) in top_level'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:101:in `each'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:101:in `block in top_level'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:110:in `run_with_threads'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:95:in `top_level'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:73:in `block in run'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/lib/rake/application.rb:70:in `run'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/gems/rake-10.0.3/bin/rake:33:in `<top (required)>'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/bin/rake:23:in `load'
/Users/akhil/.rvm/gems/ruby-1.9.3-p194@rnd/bin/rake:23:in `<main>'
Tasks: TOP => db:mongoid:create_indexes

【问题讨论】:

    标签: ruby-on-rails mongodb mongoid moped


    【解决方案1】:

    低于 0.6 的 mongoid_fulltext 版本与 Mongoid 3 不兼容(因此与 Moped 不兼容)。 在更新 mongoid_fulltext 上面的错误消失了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 2011-09-04
      • 2015-06-02
      • 2019-08-14
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多