我按照本教程开始使用 Rails: http ://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec-the_first_application 这看起来非常好。
一开始,作者谈到了版本对宝石和软件的重要性,所以我尽量保持使用完全相同的版本。
我按照教程进行,一切运行良好,安装正常(来自他建议的来源:http ://railsinstaller.org/en )我下载了 ruby 1.9。
安装后,我使用 rails new first_app 创建我的应用程序,将 Gemfile 更改为这个:
source 'https://rubygems.org'
ruby '1.9.3' #In the tutorial is 2.0.0, but changed to match my ruby version,
#as specified in the tutorial
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.1'
group :development do
gem 'sqlite3', '1.3.8'
end
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
当我运行 rails server 命令时,我收到以下错误:
DEPRECATION WARNING: config.whiny_nils option is deprecated and no longer works.
(called from block in <top (required)> at D:/rails/first_app/config/environment
s/development.rb:10)
config.eager_load is set to nil. Please update your config/environments/*.rb fil
es accordingly:
* development - set it to false
* test - set it to false (unless you use a tool that preloads your test enviro
nment)
* production - set it to true
但是打开 localhost:3000 工作正常。单击“关于您的应用程序的环境”链接,会产生错误
ActiveRecord::ConnectionNotEstablished
Rails.root: D:/rails/first_app
我检查了一下,我的 database.yml 正在使用 sqlite3。
当我在我的应用程序文件夹中运行 rake db:create 时,我得到
耙中止!为数据库适配器指定了“postgresql”,但未加载 gem。添加
gem 'pg'
到您的 Gemfile。
我认为这三个问题可能是相关的,问题的根源是启动 rails 服务器时的错误消息。我能做些什么来修复它,它可能是 ruby 版本 1.9.3 而不是 2.0.0?
谢谢!
编辑: 在这个链接上,我找到了关于 whiny_nils 弃用问题的解决方案
Rails 4 removed the whiny_nils feature. Read more about it in the ActiveRecord chapter.
To solve the deprecation warning, simply remove any lines that set config.whiny_nils. Rails 3 added the configuration by default in config/environments/development.rb and config/environments/test.rb by default.
不知道为什么创建一个应用程序并使用相同的版本启动它会导致这个问题,但是没关系。1号固定:)
Edit2:在同一个链接中,我通过在我的配置文件中创建此配置并设置一个值来修复 config.eager_load 问题。
活动记录问题仍然存在。
编辑 3:这是我的 database.yml 文件
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000