Ruby on rails 在生成RSpec测试时,如何使用rails中的RSpec和Mongoid防止此错误?
我尝试在一个项目中安装rspec和mongoid(遵循“Rails Deep Dive”一书中的示例),但在尝试从rspec运行生成器时出错 以下是文件:Ruby on rails 在生成RSpec测试时,如何使用rails中的RSpec和Mongoid防止此错误?,ruby-on-rails,mongodb,rspec,mongoid,Ruby On Rails,Mongodb,Rspec,Mongoid,我尝试在一个项目中安装rspec和mongoid(遵循“Rails Deep Dive”一书中的示例),但在尝试从rspec运行生成器时出错 以下是文件: gem 'rails', '3.2.11' gem 'devise', "~> 1.4.2" gem 'mongoid', "~> 2.1.8" gem 'mongoid_spacial', '~> 0.2.13' gem 'haml', '~> 3.1.2' gem 'bson_ext', '~> 1.3.1'
gem 'rails', '3.2.11'
gem 'devise', "~> 1.4.2"
gem 'mongoid', "~> 2.1.8"
gem 'mongoid_spacial', '~> 0.2.13'
gem 'haml', '~> 3.1.2'
gem 'bson_ext', '~> 1.3.1'
gem 'rails-backbone'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
group :test, :development do
gem 'rspec-rails', '~> 2.6.1'
gem 'mongoid-rspec', '~> 1.4.4'
gem 'capybara', '~> 1.0.1'
gem 'factory_girl_rails', '~> 1.1.0'
gem 'database_cleaner', '~> 0.6.7'
gem 'jasmine', '~> 1.0.2.1'
end
我使用生成器生成了一个mongo配置文件,结果如下:
development:
host: localhost
database: loccasions_development
test:
host: localhost
database: loccasions_test
# set these environment variables on your prod server
production:
host: <%= ENV['MONGOID_HOST'] %>
port: <%= ENV['MONGOID_PORT'] %>
username: <%= ENV['MONGOID_USERNAME'] %>
password: <%= ENV['MONGOID_PASSWORD'] %>
database: <%= ENV['MONGOID_DATABASE'] %>
如何修复此问题?它没有使用bson_ext gem,可能是因为它太旧了,而且显然bson-1.8.2有问题 您可以删除: gem'bson_ext',“~>1.3.1” 然后尝试bundle安装(默认情况下,这可能会安装bson_ext) 或更改: gem'bson_ext',“~>1.3.1” 到 gem“bson_ext”
并对bson_ext进行捆绑升级(这将强制并升级到bson_ext)我也遇到了同样的问题。我使用下面给出的所有宝石的头部,并添加了mongo_ext(我认为它没有改变任何事情): 我重新运行mongoid生成器
rails g mongoid:config
为了重新创建一个合适的mongoid.yml,然后重新创建rspec安装程序
rails g rspec:install
就这些。我使用的gems版本有:
bson_ext (1.8.2)
bson (~> 1.8.2)
mongo_ext (0.19.3)
mongoid (3.0.21)
activemodel (~> 3.1)
moped (~> 1.2)
origin (~> 1.0)
mongoid-rspec (1.6.0)
mongoid (>= 3.0.1)
rake
rspec (>= 2.9)
mongoid_spacial (0.2.16)
activesupport (~> 3.0)
mongoid (>= 2.3.0)
然后评论出来
config.use_transactional_fixtures = true
config.fixture_path = "#{::Rails.root}/spec/fixtures"
在spec_helper.rb中
bson_ext (1.8.2)
bson (~> 1.8.2)
mongo_ext (0.19.3)
mongoid (3.0.21)
activemodel (~> 3.1)
moped (~> 1.2)
origin (~> 1.0)
mongoid-rspec (1.6.0)
mongoid (>= 3.0.1)
rake
rspec (>= 2.9)
mongoid_spacial (0.2.16)
activesupport (~> 3.0)
mongoid (>= 2.3.0)
config.use_transactional_fixtures = true
config.fixture_path = "#{::Rails.root}/spec/fixtures"