在Stackoverflow中搜索上述问题的答案我总是遇到一个类似但不相同的问题:是否可以使用比计算机上安装的最新版本更新的rails应用程序(最大的一个)这种流行的帖子是指定在创建新应用程序时使用的rails版本.但是,我感兴趣的是知道是否可以运行诸如'rails __2.1.0__ new myapp'之类的命令,即使我的计算机上尚未安装特定的rails版本,这样当它运行时它会自动安装这个rails版本加上它创建所有的起始文件(其中Gemfile包含该特定版本的所有兼容的gems).
作为一个例子......现在我正在关注Michael Hartl的Rails Tutorial一书,我们被要求使用ruby版本2.0.0,rails版本4.0.8并将以下信息包含在Gemfile中:
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.8'
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
Run Code Online (Sandbox Code Playgroud)
碰巧我默认使用ruby-2.1.2和rails 4.1.4所以当我想要关注Hartl的书时,我必须创建一个新的rails应用程序(根据rails 4.1.4设置Gemfile)和之后我不得不进入新的应用程序,运行$ gem install rails --version 4.0.8来安装该版本,替换上面代码中带有rails 4.1.4的默认Gemfile,然后运行bundle install和bundle update.
它似乎有效,但总而言之,这是一个相当乏味和烦人的解决方案.难道这不能解决,就像我在开始时写的那样,用'rails ____ 2.1.0 ____ …
首先,这是我的版本:
Greg-Nowickis-MacBook-Pro:sample_app Greg_Nowicki$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-darwin13.1.0]
Greg-Nowickis-MacBook-Pro:sample_app Greg_Nowicki$ rails -v
Rails 4.0.4
Run Code Online (Sandbox Code Playgroud)
我正在关注Hartl Rails教程并安装rspec进行测试.我已经将gem'rspec-rails'添加到我的gemfile中,当我运行rails生成rspec:install时,这就是我得到的:
Greg-Nowickis-MacBook-Pro:sample_app Greg_Nowicki$ rails generate rspec:install
/Users/Greg_Nowicki/workspace/railstutorial/sample_app/config/environments/development.rb:1:in `<top (required)>': undefined method `configure' for #<SampleApp::Application:0x007fcd3a47c138> (NoMethodError)
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:229:in `require'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:229:in `block in require'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:214:in `load_dependency'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:229:in `require'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/railties-4.0.4/lib/rails/engine.rb:591:in `block (2 levels) in <class:Engine>'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/railties-4.0.4/lib/rails/engine.rb:590:in `each'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/railties-4.0.4/lib/rails/engine.rb:590:in `block in <class:Engine>'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/railties-4.0.4/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/railties-4.0.4/lib/rails/initializable.rb:30:in `run'
from /Users/Greg_Nowicki/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/gems/railties-4.0.4/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/Greg_Nowicki/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each'
from /Users/Greg_Nowicki/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/tsort.rb:183:in …Run Code Online (Sandbox Code Playgroud) 我正在编写一个教程,我正在尝试执行步骤1.4.2.
我在网上搜索了"NoMethodError:undefined method`configure'"时,我尝试了几件事似乎没有用.我看了所有链接和几个类似的搜索,但没有工作.
在书中它说要做到这一点:
# This should only be used if your Heroku deploy fails without it.
$ rake assets:precompile
$ git add .
$ git commit -m "Add precompiled assets for Heroku"
Run Code Online (Sandbox Code Playgroud)
但它没有奏效,或者我没有让它发挥作用
这是我真正的问题
$ git push heroku master
Run Code Online (Sandbox Code Playgroud)
结果就是这样.
james@ubuntu:~/rails_projects/first_app$ git push heroku master
Initializing repository, done.
Counting objects: 84, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (73/73), done.
Writing objects: 100% (84/84), 17.47 KiB, done.
Total 84 (delta 16), reused 0 …Run Code Online (Sandbox Code Playgroud)