我正在关注Hartl的Rails教程,并在运行http://localhost:3000/
后尝试打开rails s
时遇到此错误。我尝试使用我的默认设置打开一个rails服务器,它工作正常,所以我怀疑错误来自他在书中指定的以下Gemfile
。这里有什么东西可以引起问题吗?
我的默认设置为ruby 2.0.0
,rails 4.1.0
,heroku-toolbelt/3.6.0 (x86_64-linux) ruby/1.9.3
。
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.5'
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
group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
答案 0 :(得分:3)
我在跟随Hartl时遇到了同样的问题,我认为发生了什么:
使用rails new sample_app
创建应用程序时,您将默认为已安装的版本:4.1。
Rails 4.1使用config.secret_key_base
文件处理secrets.yml
; 4.0使用secret_token.rb
。
因为Hartl的Gemfile指定了Rails 4.0.5,所以在运行应用程序时它会查找后一个文件。
您可以修改Hartl的Gemfile以指定Rails 4.1.0(我选择的路线);或者您可以从https://github.com/railstutorial/sample_app_rails_4/blob/master/config/initializers/secret_token.rb复制Hartl的secret_token.rb。
使用rails _4.0.5_ new sample_app
创建应用时,您也可以使用Hartl的Rails版本。这将使用secret_token.rb
创建一个4.0应用程序。
希望这有帮助。