【问题标题】:Heroku push rejected - Hartl's Rails 3.2 tutorialHeroku 推送被拒绝 - Hartl 的 Rails 3.2 教程
【发布时间】:2012-07-25 00:04:10
【问题描述】:

我是一名 ruby​​、ruby on rails 和 heroku 新手,正在努力向Michael Hartl's Ruby on Rails 3.2 tutorial 学习编码。

现在在本章的开头,我未能将所有内容部署到 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,费边

【问题讨论】:

    标签: ruby-on-rails ruby heroku


    【解决方案1】:

    默认生成的 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 依赖于 railties 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'
    

    【讨论】:

    • 是的,这是真的。我已经更改了 Gemfile,因为这是在教程中编写的。现在我将 Rails 更新到 3.2.7.rc1 而不是更改 gem - 一切正常:-)
    • 啊,那我自己可能也会这样做:)
    【解决方案2】:

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

    【讨论】:

    • 谢谢你,约翰。这也是一个好方法。两种方式都有效 - 更新 Rails 或仅更新 jquery-rails。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-09
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 2019-05-31
      • 1970-01-01
      相关资源
      最近更新 更多