当我尝试在Rails3中从TextMate运行测试时,我得到一个错误,我追溯到boot.rb.当我尝试通过textmate运行boot.rb时,我收到此错误:
LoadError: no such file to load — bundler
method gem_original_require in custom_require.rb at line 31
method require in custom_require.rb at line 31
at top level in boot.rb at line 4
这甚至是一个全新的铁轨项目。我能够从终端调用
运行相同的boot.rb文件ruby <path_to>/boot.rb
我可以验证我的TM_RUBY变量与从命令行调用which ruby
时的变量相同。你有什么线索我可能会收到这个错误吗?
答案 0 :(得分:13)
我遇到了TextMate和RVM的同样问题。你需要做什么:
使用此RVM命令为要使用的gemset创建包装器脚本:
rvm wrapper ree@rails3 textmate
这将为您的RVM安装添加一个名为textmate_ruby
的新别名。正如您可能会说这假设您使用的是Ruby Enterprise(ree)和名为rails3的gemset,但任何RVM字符串都可以在这里工作。
打开TextMate的偏好设置窗口,转到高级&gt;壳变量。您需要创建(或更新)TM_RUBY
shell变量到以下内容:
/path/to/your/.rvm/bin/textmate_ruby
如果您的用户目录(如我的)安装了RVM,那将是:
/Users/[YOUR USER NAME HERE]/.rvm/bin/textmate_ruby
(可选)您可能还需要/想要设置RUBYOPT
shell变量,以指示Ruby加载rubygems。这可能是使某些捆绑(如RSpec)工作所必需的。只需将值设置为rubygems
。
这应该就是你所需要的。
答案 1 :(得分:3)
我发现使用rvm-auto-ruby
方法最简单。
使用rvm-auto-ruby
:
which
二进制文件
$ which rvm-auto-ruby
结果是自动加载二进制文件的路径:
/Users/yourusername/.rvm/bin/rvm-auto-ruby
将此路径添加到TextMate下:偏好设置 - &gt;高级 - &gt; Shell变量
它的功能类似于指向您的Ruby活动版本的别名。
屏幕截图:http://cl.ly/23Yl
这些说明可在RVM网站上找到:https://rvm.io/integration/textmate/
答案 2 :(得分:1)
要让TextMate使用与命令行相同的RVM Ruby解释器,我执行了以下操作:
which ruby
- 对我来说,这是/Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin/ruby
/Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin
添加到我的PATH
shell变量的前面。GEM_PATH
,其值为/Users/mgp/.rvm/gems/ruby-1.9.2-p180:/Users/mgp/.rvm/gems/ruby-1.9.2-p180@global
答案 3 :(得分:0)
这可能发生在您使用RVM(ruby版本管理器)并且textmate不知道它。
从命令行进行rake测试工作吗?