我在安装 Mac OS Lion 后安装了 rvm。我面临的问题是每当我尝试运行一个新的 Rails 应用程序时,它都会给我以下错误。
一旦选择特定的 rvm,问题就会得到解决。 $ rvm gemset 使用全局
我知道每个项目都使用 .rvmrc 文件。但是我不想每次创建演示项目时都继续使用这个命令。为什么 rvm 不在我每次创建新项目时自动使用“全局”gemset?
我用了this documentation安装 rvm。
JP:demo3 jayparteek$ rails s
/Users/jayparteek/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands/server.rb:3:in `require': no such file to load -- action_dispatch (LoadError)
from /Users/jayparteek/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands/server.rb:3:in `<top (required)>'
from /Users/jayparteek/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands.rb:48:in `require'
from /Users/jayparteek/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands.rb:48:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
最佳答案
您可以为给定的 ruby 解释器指定“默认”gemset,方法是:
rvm use ruby-1.9.2-p0@gemsetname --default
参见:http://beginrescueend.com/gemsets/using/和 http://beginrescueend.com/gemsets/basics/
为您的每个项目使用特定的 gemset 及其特定的 Gemfile 可能是一个更好的主意。如果您在 Gemfile 中需要 '>= x.y.z',并且您在一个项目中执行了 bundle update
,但在另一个项目中没有执行,则可能会出现问题......
cd ProjectA
rvm gemset create projecta
rvm gemset use projecta
cd ProjectB
rvm gemset create projectb
rvm gemset use projectb
这样,尽管您通过 bundle update
将 ProjectA 中的 gem 更新到最新最好的版本,但它们仍然不会针对 ProjectB 进行修改——消除了项目之间干扰的可能性。
您还可以将 .rvmrc 文件添加到目录,例如你的项目目录。然后,RVM 将使用 .rvmrc 文件中列出的 ruby 版本和 gem 集作为所有子目录的默认值。
例如假设您安装了 ruby 1.9.3,并且为该 ruby 版本设置了 gem“rails_3.2”:
# cat .rvmrc
rvm use ruby-1.9.3-p0@rails_3.2
关于ruby-on-rails - 让 rvm 为我创建的每个新 Rails 应用程序使用默认(如全局)gemset 的命令是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207398/