因此,为了让ruby开发环境正常工作,我遇到了一个似乎......让这个红宝石菜鸟感到困惑的问题。
执行rails服务器时,它会按预期启动,但是当您将localhost:3000放入标准Web浏览器时,它会回复以下内容:
为数据库适配器指定'sqlite3',但未加载gem。将
gem 'sqlite3'
添加到您的Gemfile。
现在这里是令人困惑的部分。我安装了sqlite3(64位版本,因为这是我下载的,运行64位操作系统),由gem查询验证(这里是宝石的完整列表)
卸载和重新安装并没有为手头的问题做好事,但确实没有顺利安装。我正在测试的项目的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
以前有人碰到过这个吗?
答案 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