使用rails 3时如何更新机架? Bundler不会让我!

时间:2011-04-26 02:43:50

标签: ruby-on-rails-3 bundler rack

使用file_field_tag时出现以下错误:EOFError(错误内容正文)。这是一个已知错误,解决方案是更新机架安装。

不幸的是,如果我运行“bundle update rack-mount”,我会收到以下错误:

Bundler could not find compatible versions for gem "rack-mount":
  In Gemfile:
    rails (= 3.0.7) depends on
      rack-mount (~> 0.6.14)

    rack-mount (0.7.2)

这是令人愤怒的,因为每个人都告诉我捆绑器太棒了但是它所做的就是让我无法运行我需要的宝石版本。 GRR。

任何人都知道如何解决这个问题?我很惊讶我没有在Google上发现任何关于此问题的任何内容,因为现在使用rails 3上传文件是不可能的。

3 个答案:

答案 0 :(得分:5)

看来rails版本3.0.7依赖于机架安装版本0.6.14,尝试编辑 Gemfile 中的gem 'rails', '3.0.x'。其中x是另一个版本号,可以是6,5,4或任何你想要使用的而不是7,然后删除你的 Gemfile.lock 并尝试bundle install

答案 1 :(得分:1)

您是否尝试删除Gemfile.lock并再次运行bundle install

答案 2 :(得分:1)

您无法使用bundler覆盖Rails依赖项。如果必须覆盖Rails要求,则应维护自己的分支。

  1. github上的Fork Rails(比如版本3.0.9)
  2. 查看(通过git clone
  3. 您要更改的结帐分支(git checkout --track origin/3_0_9
  4. 创建一个新分支(git checkout -b 3_0_9_with_new_rack_mount
  5. 进行更改。在这种情况下,请编辑actionpack / actionpack.gemspec并将0.6.14更改为0.7.2
  6. 提交更改(git commit -am "Updated to a newer rack-mount version"
  7. 将其推送到您的github帐户(git push origin 3_0_9_with_new_rack_mount
  8. 使用该存储库(gem 'rails', :git => "git://github.com/jevy/rails.git", :branch => "3_0_9_with_new_rack_mount" # Fixes carrierwave error)
  9. 更新您的Gemfile
  10. 删除您的Gemfile.lock
  11. bundle install
  12. 利润$$$