Ruby 在cd挂钩后的RVM

Ruby 在cd挂钩后的RVM,ruby,rvm,Ruby,Rvm,我正在尝试使用rails应用程序在我cd进入目录后运行命令 我的~/.rvm/hooks/after_cd的内容是: echo "Now using $rvm_ruby_string" echo "Now using $rvm_ruby_string" 我的~/.rvm/hooks/after_use的内容是: echo "Now using $rvm_ruby_string" echo "Now using $rvm_ruby_string" 当我使用$rmv 1.9.2时,我看到了我

我正在尝试使用rails应用程序在我
cd
进入目录后运行命令

我的
~/.rvm/hooks/after_cd
的内容是:

echo "Now using $rvm_ruby_string"
echo "Now using $rvm_ruby_string"
我的
~/.rvm/hooks/after_use
的内容是:

echo "Now using $rvm_ruby_string"
echo "Now using $rvm_ruby_string"
当我使用
$rmv 1.9.2时,我看到了我的echo,但是当我
cd
进入我的应用程序的rails根目录时,我没有收到任何echo

我使用的
after_cd
挂钩是否错误

$rvm-v
表示:

rvm 1.0.8 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]

首先,您需要了解rvm如何覆盖系统的默认cd命令

这是一个很好的解释

简而言之,rvm在.rvm/script/cd中定义了这样一个函数

cd(){
  builtin cd $*                    #run system cd
  source after_cd_hooks            #run hook scripts
}
如果您研究一下这个cd()是如何定义的,您可以找到这一行

uuu rvm_u项目u rvmrc&&uuu rvm_ucd后| |真

\uuuu rvm\u project\u rvmrc
是检查您更改到的目录中是否存在.rvmrc的功能

因此,钩子脚本将仅在项目根目录中存在.rvmrc时才来源。

因此,请创建您的.rvmrc并重试该cd。祝你好运

> /path/to/app/root/.rvmrc
cd /path/to/app/root
我的rvm版本:

rvm -v

rvm 1.23.14 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
rvm-v
rvm 1.23.14(稳定)作者:韦恩E.塞根,迈克尔·帕皮斯[https://rvm.io/]

当我检查自己的
rvm--version
时,它会显示
1.8.0
。也许升级到更新的RVM会有所帮助?1.8.5是最新和最稳定的版本。@SooDesuNe对我来说很有用