2011-04-26 54 views
2

使用file_field_tag時出現以下錯誤:EOFError(錯誤內容正文)。這是一個已知的錯誤,解決方案是更新機架安裝。如何在使用導軌3時更新機架? Bundler不會讓我!

不幸的是,如果我跑「捆綁更新機架式」我收到以下錯誤:

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) 

這是真氣,因爲每個人都告訴我,捆綁器如此真棒,但它的所有做的是讓它根本不可能爲我運行我需要的寶石版本。格兒。

任何人都知道如何解決這個問題?我很驚訝我沒有在Google上找到任何關於此的信息,因爲它無法使用導軌3上傳文件。

回答

1

您不能用bundler覆蓋Rails的依賴關係。如果你必須覆蓋Rails的要求,你應該維護你自己的分支。

  1. 叉的Rails在github上(比如版本3.0.9)
  2. 檢查出來(通過git clone
  3. 你想改變( git checkout --track origin/3_0_9
  4. 創建一個新的分支
  5. 結帳分支(git checkout -b 3_0_9_with_new_rack_mount
  6. 進行更改。在這種情況下,編輯ActionPack的/ actionpack.gemspec和更改0.6.140.7.2
  7. 提交更改(git commit -am "Updated to a newer rack-mount version"
  8. 推到你的github帳戶(git push origin 3_0_9_with_new_rack_mount
  9. 與倉庫(gem 'rails', :git => "git://github.com/jevy/rails.git", :branch => "3_0_9_with_new_rack_mount" # Fixes carrierwave error)
  10. 更新您的Gemfile刪除您Gemfile.lock的
  11. bundle install
  12. 利潤$$$
+0

我想這就是做這件事的方法,但是你不覺得Bundler讓它變得不必要的困難嗎? – 2011-06-20 17:25:46

+0

正如一個附加說明,菲利普確實說過升級到0.7.2版爲他修正了錯誤。 – jevy 2011-06-20 18:06:10

1

您是否嘗試刪除Gemfile.lock並再次運行bundle install

+0

這對我有用。 – 2012-08-06 21:01:08

5

看來rails 3.0.7的版本取決於機架安裝版本0.6.14,請嘗試在Gemfile中編輯gem 'rails', '3.0.x'。其中x是另一個版本號,可以是6,5,4或者您更喜歡使用的任何其他版本號,然後刪除Gemfile.lock並嘗試bundle install

+1

刪除Gemfile.lock對我來說工作得很好。謝謝! – RubyFanatic 2011-05-19 04:10:04