我正在使用Michael Hartl的 Ruby on Rails教程学习Rails :https://www.railstutorial.org/book
我使用以下命令生成控制器:
rails generate controller StaticPages home help
对于版本冲突会产生以下错误:
check_version_conflict': can't activate bundler-1.12.4, already
activated bundler-1.13.0.pre.1 (Gem::LoadError)
我不知道要使用哪个Bundler版本。 Bundler的当前版本是:1.13.pre.1
以下命令由于大约五个无法自动安装的gem依赖项而继续失败,其中包括listen
和nokigiri
。
bundle install --without production
我尝试手动安装从属gems,但我仍然遇到问题。
如何在生成Rails控制器时解决check_version_conflict
的{{1}}问题?
我会接受一个答案,指示删除当前的Ruby库并从头开始安装新的开发环境。
答案 0 :(得分:2)
Bundler将安装项目特定版本的宝石,这样您就不必管理全局依赖项。
实际上,如果您使用bundler安装Rails并且还使用sudo gem install rails
或类似的东西安装它,那么您的计算机上将有两个版本。默认情况下,调用rails
将引用全局版本。
如果您致电bundle exec rails
(或bundle exec <gem_name>
),它将调用特定于捆绑包的版本。
答案 1 :(得分:1)
使用Bundler解决问题的十个步骤
rbenv
安装Ruby。按照此处的说明操作:https://github.com/rbenv/rbenv 从命令行:
mkdir repo
cd repo
从命令行:
gem install bundler
bundle init
repo/Gemfile
,并将其配置为指示Bundler安装哪个版本的Rails 在repo/Gemfile
:
source "https://rubygems.org"
gem "rails", "4.2.6"
从命令行:
bundle install
cd
从命令行:
bundle exec rails new whatevs
cd whatevs
在repo/whatevs/Gemfile
:
gem 'nokogiri', '1.6.8'
repo/whatevs/
目录,通过Bundler 从命令行:
bundle install
repo/whatevs/
目录生成控制器从命令行:
bundle exec rails generate controller static_pages home help