是什么命令让rvm为我创建的每个新的rails应用程序使用默认(如全局)gemset?

时间:2011-11-21 04:46:44

标签: ruby-on-rails rvm

安装Mac OS Lion后我安装了rvm。我面临的问题是每当我尝试运行新的Rails应用程序时,它都会给我以下错误。

一旦选择了特定的rvm,问题就会得到解决。 $ rvm gemset use global

我知道每个项目使用.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>'

2 个答案:

答案 0 :(得分:7)

您可以通过执行以下操作为给定的ruby解释器指定“默认”gemset:

rvm use ruby-1.9.2-p0@gemsetname --default

请参阅:http://beginrescueend.com/gemsets/using/http://beginrescueend.com/gemsets/basics/

为每个项目使用特定的gemset以及它的特定Gemfile可能更好。如果您在Gemfiles中需要'&gt; = 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

这样,虽然您通过# cat .rvmrc rvm use ruby-1.9.3-p0@rails_3.2 将ProjectA中的宝石更新为最新且最好的,但它们仍未针对ProjectB进行修改 - 消除了项目之间干扰的可能性。


您还可以将.rvmrc文件添加到目录中,例如你的项目目录。然后,RVM将使用.rvmrc文件中列出的ruby-version和gem set作为所有子目录的默认值。

e.g。假设你安装了ruby 1.9.3,并且gem为ruby版本设置了“rails_3.2”:

{{1}}

答案 1 :(得分:0)

您可以使用以下命令

制作默认gemset
rvm --default gemset use <gemsetname> 

rvm gemset use <gemsetname> --default 

例如,如果你有rails4 gemset,那么可以通过

将其设为默认值
rvm --default gemset use rails4

rvm gemset use rails4 --default