Heroku推被拒绝–Hartl的Rails 3.2教程

我是一个ruby,ruby on rails和heroku greenhorn,它正在尝试学习Michael Hartl的Ruby on Rails 3.2教程中的代码 。

现在在本章的最开始,我没有将所有内容部署到Heroku。 我收到此错误消息(但我没有计划如何解决此问题):

$ git push heroku master Counting objects: 69, done. Delta compression using up to 2 threads. Compressing objects: 100% (54/54), done. Writing objects: 100% (69/69), 27.34 KiB, done. Total 69 (delta 5), reused 0 (delta 0) -----> Heroku receiving push -----> Ruby/Rails app detected -----> Installing dependencies using Bundler version 1.2.0.rc Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ Fetching gem metadata from https://rubygems.org/........ Bundler could not find compatible versions for gem "railties": In Gemfile: rails (= 3.2.6) ruby depends on railties (= 3.2.6) ruby jquery-rails (= 2.0.0) ruby depends on railties (3.2.7.rc1) ! ! Failed to install gems via Bundler. ! ! Heroku push rejected, failed to compile Ruby/rails app To git@heroku.com:pacific-anchorage-8098.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'git@heroku.com:pacific-anchorage-8098.git' 

我的Gemfile看起来像这样:

 source 'https://rubygems.org' gem 'rails', '3.2.6' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' group :development, :test do gem 'sqlite3', '1.3.5' gem 'rspec-rails', '2.10.0' end # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails', '3.2.4' gem 'coffee-rails', '3.2.2' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :ruby gem 'uglifier', '1.2.3' end gem 'jquery-rails', '2.0.0' group :test do gem 'capybara', '1.1.2' end group :production do gem 'pg', '0.12.2' end # To use ActiveModel has_secure_password # gem 'bcrypt-ruby', '~> 3.0.0' # To use Jbuilder templates for JSON # gem 'jbuilder' # Use unicorn as the app server # gem 'unicorn' # Deploy with Capistrano # gem 'capistrano' # To use debugger # gem 'debugger' 

我希望有人可以帮助我(对不起,我是初学者 – >也是在Stackoverflow,哈哈)。 KR,Fabian

默认生成的Gemfile(使用rails 3.2.6)未指定要使用的jquery-rails版本。 我建议做同样的事情,如下:

 # remove version number, just like you would see in a fresh rails app gem 'jquery-rails' 

你需要的版本,2.0.0,依赖于栏杆3.2.7.rc1 gem,你不能使用rails 3.2.6。

我在我的应用程序中使用了您的代码,无法将其绑定到我的本地主机上。 这让我想知道你是否自己尝试过这一点,然后再推送到heroku。 您应该始终首先在本地计算机上捆绑安装。

此外,您似乎已经碰到了sass-rails和coffee-rails所需的版本号。 以下是您在干净的rails应用程序的Gemfile中所期望的:

 # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :ruby gem 'uglifier', '>= 1.0.3' end gem 'jquery-rails' 

我现在可以自己解决问题了。 这是这样的:

  1. 转到Gemfile并将gem’rails gem 'rails', '3.2.6'更改为gem’trail gem 'rails', '3.2.7rc1'
  2. 保存
  3. 运行bundle install --without production
  4. 运行git add .
  5. git commit -a -m "Heroku recommit一样git commit -a -m "Heroku recommit
  6. git push推送到github并按照用户名和密码的说明操作
  7. 最后一个git push heroku master

哇,这很难,但非常有教育意义:-)

问题是jquery-rails gem需要一个不同版本的railties而不是bundle文件中的rails gem。 您可以尝试从jquery-rails中删除“2.0.0”,然后重试。 Bundle将安装一个版本的gem,它适用于3.2.6版本的铁路。