我在安装Mac OS Lion后安装了rvm.我遇到的问题是每当我尝试运行新的Rails应用程序时,它都会给我以下错误.
一旦选择了特定的rvm,问题就会得到解决. $ rvm gemset use global
我知道每个项目使用.rvmrc文件.但是我不希望每次创建演示项目时都继续使用此命令.为什么每次创建新项目时rvm都不会自动使用"全局"gemset?
我用这个文档来安装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>'
Run Code Online (Sandbox Code Playgroud)
您可以通过执行以下操作为给定的ruby解释器指定"默认"gemset:
rvm use ruby-1.9.2-p0@gemsetname --default
Run Code Online (Sandbox Code Playgroud)
请参阅:http://beginrescueend.com/gemsets/using/和http://beginrescueend.com/gemsets/basics/
为每个项目使用特定的gemset以及它的特定Gemfile可能是个更好的主意.如果您在Gemfiles中需要'> = xyz',并且您bundle update在一个项目中执行,而在另一个项目中执行,则可能会出现问题...
cd ProjectA
rvm gemset create projecta
rvm gemset use projecta
cd ProjectB
rvm gemset create projectb
rvm gemset use projectb
Run Code Online (Sandbox Code Playgroud)
这样,虽然您将ProjectA中的宝石更新为bundle update最新且最好的宝石,但它们仍未针对ProjectB进行修改 - 消除了项目之间干扰的可能性.
您还可以将.rvmrc文件添加到目录,例如项目目录.然后,RVM将使用.rvmrc文件中列出的ruby-version和gem set作为所有子目录的默认值.
例如,假设您安装了ruby 1.9.3,并且gem为该ruby版本设置了"rails_3.2":
# cat .rvmrc
rvm use ruby-1.9.3-p0@rails_3.2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4445 次 |
| 最近记录: |