【发布时间】:2015-04-10 03:13:20
【问题描述】:
这是针对下述问题的更新:
我刚刚发现根目录(即系统主目录)中有一个 Gemfile 和 Gemfile.lock,每当我创建一个新的 gemset 时,我相信它会使用这个 gemfile。在新创建的 gemset 中安装 rails 后,当检查 rails 版本或尝试创建新应用程序时,它显示错误Your ruby version is 2.2.0, but your Gemfile specifies 2.1.5,导致我的主目录中的 Gemfile 文件包含该 ruby 版本,如果删除该 Gemfile,并且尝试创建一个新的 rails 应用程序,它会搜索该 Gemfile。
我目前正在经历一段艰难时期。我在 ruby 2.2.0 和 rails 4.2.0 中开始了一个新项目,并通过在我的项目文件夹中使用 RVM 创建一个 gemset 开始。
-
创建的 gemset。
$rvm use ruby-2.2.0@myapp --ruby-version --create -
安装最新的导轨
$gem install rails -
之后我检查了 Rails 版本只是为了验证
$rails -v但我收到一条通知,上面写着
Your Ruby version in 2.2.0 but your Gemfile specified 2.1.5。我还没有我的应用程序文件夹,因为如果我尝试$rails new .,我会得到相同的输出
以下是与 RVM 相关的输出
- 我的 RVM 版本是 1.26.10。
-
rvm gemset listgemsets for ruby-2.2.0 (found in /Users/samy/.rvm/gems/ruby-2.2.0) (default) global student-portal => myapp -
gem list用于全局 gemsetbigdecimal (1.2.7, 1.2.6) bundler (1.7.13) bundler-unload (1.0.2) executable-hooks (1.3.2) gem-wrappers (1.2.7) io-console (0.4.3) json (1.8.2, 1.8.1) mini_portile (0.6.2) minitest (5.5.1, 5.4.3) nokogiri (1.6.6.2) power_assert (0.2.2) psych (2.0.12, 2.0.8) rake (10.4.2) rdoc (4.2.0) rubygems-bundler (1.4.4) rvm (1.11.3.9) test-unit (3.0.9, 3.0.8) -
gem list用于 myapp gemsetactionmailer (4.2.0) actionpack (4.2.0) actionview (4.2.0) activejob (4.2.0) activemodel (4.2.0) activerecord (4.2.0) activesupport (4.2.0) arel (6.0.0) bigdecimal (1.2.7, 1.2.6) builder (3.2.2) bundler (1.7.13) bundler-unload (1.0.2) erubis (2.7.0) executable-hooks (1.3.2) gem-wrappers (1.2.7) globalid (0.3.2) hike (1.2.3) i18n (0.7.0) io-console (0.4.3) json (1.8.2, 1.8.1) loofah (2.0.1) mail (2.6.3) mime-types (2.4.3) mini_portile (0.6.2) minitest (5.5.1, 5.4.3) multi_json (1.10.1) nokogiri (1.6.6.2) power_assert (0.2.2) psych (2.0.12, 2.0.8) rack (1.6.0) rack-test (0.6.3) rails (4.2.0) rails-deprecated_sanitizer (1.0.3) rails-dom-testing (1.0.5) rails-html-sanitizer (1.0.1) railties (4.2.0) rake (10.4.2) rdoc (4.2.0) rubygems-bundler (1.4.4) rvm (1.11.3.9) sprockets (2.12.3) sprockets-rails (2.2.4) test-unit (3.0.9, 3.0.8) thor (0.19.1) thread_safe (0.3.4) tilt (1.4.1) tzinfo (1.2.2) -
which ruby给了/Users/samy/.rvm/rubies/ruby-2.2.0/bin/ruby -
which rails给了/Users/samy/.rvm/gems/ruby-2.2.0@myapp/bin/rails-
文件包含
#!/usr/bin/env ruby_executable_hooks # # This file was generated by RubyGems. # # The application 'railties' is installed as part of a gem, and # this file is here to facilitate running it. # require 'rubygems' version = ">= 0" if ARGV.first str = ARGV.first str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then version = $1 ARGV.shift end end gem 'railties', version load Gem.bin_path('railties', 'rails', version)
-
我尝试删除并重新安装 RVM,但没有成功。
我还尝试使用具有不同 gemset 的 ruby 2.1.5 制作应用程序,但是当我尝试执行 rails new app 时出现不同的错误。我得到了Could not find slop-3.6.0 in any of the sources
Run 'bundle install' to install missing gems.,但是一旦我执行bundle install,我就无法运行rails new app 命令,因为它会通知
Can't initialize a new Rails application within the directory
of another, please change to a non-Rails directory first.
任何帮助将不胜感激。如果您需要更多信息,我随时准备提供。
提前致谢。 干杯。
【问题讨论】:
-
ruby '2.1.5'已在您的应用程序的 gem 文件中设置 -
@Nithin 问题是我无法使用
rails new创建新应用程序。目前我的应用程序文件夹的根级别只有两个文件,即 .ruby-gemset 和 .ruby-version。 .ruby-gemset 文件有 gemset 名称,.ruby-version 中有 ruby-2.2.0。 -
@Nithin 除了应用程序文件夹之外,还有其他地方存放应用程序的 gemfile 吗?
标签: ruby-on-rails ruby gem rvm