【问题标题】:Railties update铁路更新
【发布时间】:2012-06-04 19:49:19
【问题描述】:

我尝试运行git push heroku 并显示以下错误

In Gemfile:

rails (= 3.2.3) depends on

  railties (= 3.2.3)

jquery-rails (= 2.0.0) depends on

  railties (3.2.5)

这是我的 Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.3'
gem 'jquery-rails', '2.0.0'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.5'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.9.0'
  gem 'guard-rspec', '0.5.5'
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'
  gem 'uglifier', '1.2.3'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '1.4.0'
  gem 'cucumber-rails', '1.2.1', require: false
  gem 'database_cleaner', '0.7.0'
  gem 'rb-fsevent', '0.4.3.1', :require => false
  gem 'growl', '1.0.3'
  gem 'guard-spork', '0.3.2'  
  gem 'spork', '0.9.0'
  gem 'launchy', '2.1.0'
end

group :production do
  gem 'pg', '0.12.2'
end

我将我的 rails 版本更改为 3.2.5 并进行了捆绑更新和捆绑安装。仍然遇到同样的问题,因此我将 rails 版本改回 3.2.3。

【问题讨论】:

    标签: ruby-on-rails heroku bundler


    【解决方案1】:

    检查 Gemfile.lock 并搜索需要 railties 3.2.5 的 gem。

    同时尝试删除 Gemfile.lock 并再次运行“捆绑安装”

    【讨论】:

    • @nilbus 这是错误的。如果您指定 gem 版本,删除 Gemfile.lock 不会破坏任何东西。此外,如果您的测试覆盖率不错,这不是问题。
    • 你是对的。如果您为所有内容指定 gem 版本(就像这个人所做的那样),删除 Gemfile.lock 应该是安全的。我只是担心,因为大多数项目都没有指定 gem 版本(这通常是个坏主意)。大多数项目也没有完全涵盖与 gems 的交互。
    • 那是另一回事。我通常会指定 gem 版本(或者至少,我知道我不知道我在做什么)并且我编写测试。从项目生命周期的中长期来看,任何其他方式通常都是错误的。
    • gem 版本在 Gemfile.lock 中被锁定。在 Gemfile 中指定它们会使包更新 在您需要时变得困难且有问题,尤其是当您指定了要更新的另一个 gem 的特定版本的依赖项时。
    • 它被称为“可重现的构建”。指定 gem 版本可确保任何人都可以重现相同的环境,即使 Gemfile.lock 因任何原因被删除。几年来我没有遇到任何问题。
    【解决方案2】:

    几天前,我遇到了一个与此相关的问题。
    我做的是

    1. 已移除 Gemfile.lock
    2. 从 Gemfile 中删除了 gem 的版本
    3. Bundle install

    除非必要,否则我通常不会在 Gemfile 中使用版本。

    【讨论】:

    • 我执行了从另一个堆栈溢出问题中找到的以下步骤,只需在本地提示符下进行捆绑安装即可。现在放置 Gemfile.lock git add 。 git commit -m "commit message here" git push 现在执行 git push heroku 它应该可以工作。这对我有用:)
    • 如果您将链接粘贴到该答案,那就太好了
    • 使用Git add . 不是一个好方法。在添加时始终尝试指定文件名。
    • 删除 Gemfile.lock 会导致各种 gem 得到更新,通常更新到具有破坏性 API 更改的版本,这会导致您的应用意外崩溃。
    猜你喜欢
    • 1970-01-01
    • 2015-12-28
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多