当使用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)
这是令人愤怒的,因为每个人都告诉我,bundler是如此的棒,但它所做的一切是使我不可能运行我需要的gem版本。嗯……。
有人知道如何解决这个问题吗?我很惊讶我没有在谷歌上找到任何关于这个的东西,因为它是不可能使用rails 3上传文件的。
似乎rails版本3.0.7依赖于机架安装版本0.6.14,尝试在Gemfile中编辑gem 'rails', '3.0.x'
。其中x是另一个版本号,可以是6,5,4或任何你喜欢使用而不是7,然后删除你的Gemfile。锁,并尝试bundle install
。
您不能使用捆绑器覆盖Rails依赖项。如果你必须覆盖Rails的需求,你应该维护你自己的分支。
- github上的Fork Rails(版本3.0.9)
- 检查它(通过
git clone
) - 签出要更改的分支(
git checkout --track origin/3_0_9
) 新建分支( - 进行更改。在本例中,编辑actionpack/actionpack。 将
- 提交变更(
git commit -am "Updated to a newer rack-mount version"
) - 将其推送到您的github帐户(
git push origin 3_0_9_with_new_rack_mount
) - 使用该存储库更新您的Gemfile (
gem 'rails', :git => "git://github.com/jevy/rails.git", :branch => "3_0_9_with_new_rack_mount" # Fixes carrierwave error)
)删除你的Gemfile.lock -
bundle install
- 利润$ $ $
git checkout -b 3_0_9_with_new_rack_mount
)0.6.14
更改为0.7.2
您是否尝试删除Gemfile.lock
并再次运行bundle install
?