gem install mongoid 之后照着 mongoid 官网的来自写了 Person 类如下
class Person
include Mongoid::Document
field :first_name
field :middle_name
field :last_name
end
保存为 test-mongoid.rb 然后 ruby test-mongoid.rb 运行报错 错误如下: in `class:Person': uninitialized constant Person::Mongoid (NameError)
请教各位大大 这个咋解决啊?
@jjym 不是在 rails 里用的 配置文件我在官网 copy 了一份放在 test-mongoid.rb 同目录下
据官网说貌似本应该 Mongoid.load!("path/to/your/mongoid.yml") 可是现在 mongoid 好像加载不了呢
1.9.3p125 :001 > require 'mongoid'
=> true
1.9.3p125 :002 > Mongoid
=> Mongoid
1.9.3p125 :003 > Mongoid::Document
=> Mongoid::Document
1.9.3p125 :004 > class AA
1.9.3p125 :005?> include Mongoid::Document
1.9.3p125 :006?> end
=> AA
我这正常。。顺便问下 lz 的 ruby 版本,1.8?
@jjym 我 ruby 版本是 ruby 1.9.3p0
刚刚我像你上面那样试了 我在 irb 里面也正常 可是为啥在别的地方写个.rb 文件跑就不行呢?
配置文件呢?如果是脱离了 rails 环境使用 mongoid 的话,你需要自己建立一个 mongoid.yml 写好你的配置信息,然后 Mongoid.load!("path/to/your/mongoid.yml") 进去就好了。
我试了一下,搞定了。 我的 mongoid.yml
development:
sessions:
default:
database: mongoid_test_db
hosts:
- localhost:27017
我的 test_mongoid.rb
require "mongoid"
ENV['MONGOID_ENV'] = 'development'
Mongoid.load!("./mongoid.yml")
class Person
include Mongoid::Document
field :first_name
field :middle_name
field :last_name
end
p = Person.new(:first_name => 'rocky',:last_name => 'law')
puts p.first_name