Sqlite3 gem没有加载,gem安装并在项目中指定

时间:2013-09-02 16:35:41

标签: ruby-on-rails ruby windows sqlite

因此,为了让ruby开发环境正常工作,我遇到了一个似乎......让这个红宝石菜鸟感到困惑的问题。

执行rails服务器时,它会按预期启动,但是当您将localhost:3000放入标准Web浏览器时,它会回复以下内容:

  

为数据库适配器指定'sqlite3',但未加载gem。将gem 'sqlite3'添加到您的Gemfile。

现在这里是令人困惑的部分。我安装了sqlite3(64位版本,因为这是我下载的,运行64位操作系统),由gem查询验证(这里是宝石的完整列表)

Gems

卸载和重新安装并没有为手头的问题做好事,但确实没有顺利安装。我正在测试的项目的gem文件是folliwing

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'

# Use sqlite3 as the database for Active Record
gem 'sqlite3'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

正如你所看到的,sqlite3很早就在Gemfile中指定了,但是当我尝试加载主页时,无论出于何种原因,它就像它不存在一样。

此机器的详细信息如下所述:宝石部分未提及:

Rails 4 Ruby 2 Windows 7

以前有人碰到过这个吗?

3 个答案:

答案 0 :(得分:20)

我也遇到过这个问题。进入你的Gemfile.lock文件并搜索'sqlite3'条目。你会注意到它是sqlite3 (1.3.8-x86-mingw32). 将其更改为sqlite3 (1.3.8-x64-mingw32),然后运行bundle install命令,一切都应该正常工作。

答案 1 :(得分:1)

我遇到了同样的问题,这似乎是Windows 7特定的Env问题。我的问题通过以下更改解决了

进入你的Gemfile.lock文件并将 sqlite3(1.3.8-x86-mingw32)更新为 sqlite3(1.3.8-x64-mingw32)

答案 2 :(得分:0)

从项目目录运行bundle install。这将更新Gemfile.lock。您还必须重新启动Rails服务器。

另请参阅config/database.yml,其中指定了用于数据库的gem。

development:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000