9

当我尝试在 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

这甚至在一个全新的 Rails 项目中也是如此。我可以从终端调用运行相同的 boot.rb 文件

ruby <path_to>/boot.rb

我可以验证我的 TM_RUBY 变量是否与我从命令行调用时相同which ruby。你知道为什么我可能会收到这个错误吗?

4

4 回答 4

13

我在使用 TextMate 和 RVM 时遇到了同样的问题。你需要做什么:

  1. 使用以下 RVM 命令为要使用的 gemset 创建一个包装脚本:

    rvm wrapper ree@rails3 textmate
    

    这将为您的 RVM 安装添加一个名为textmate_ruby. 正如您可能会说的那样,假设您使用的是 Ruby Enterprise (ree) 和一个名为 rails3 的 gemset,但任何 RVM 字符串都可以在这里工作。

  2. 打开 TextMate 的首选项窗口,转到 Advanced > Shell Variables。您需要将TM_RUBYshell 变量创建(或更新)为以下内容:

    /path/to/your/.rvm/bin/textmate_ruby
    

    如果您的 RVM 安装在您的用户目录中(如我的),那将是:

    /Users/[YOUR USER NAME HERE]/.rvm/bin/textmate_ruby
    
  3. (可选)您可能还需要/想要设置RUBYOPTshell 变量,以指示 Ruby 加载 ruby​​gems。这可能是使某些包(如 RSpec)工作所必需的。只需将值设置为rubygems.

这应该是你所需要的。

于 2010-11-05T11:17:53.943 回答
3

我发现使用这种rvm-auto-ruby方法最简单。

使用以下命令找到rvm-auto-ruby二进制文件which

$ which rvm-auto-ruby

结果是自动加载二进制文件的路径:

/Users/yourusername/.rvm/bin/rvm-auto-ruby

将此路径添加到 TextMate 下:Preferences -> Advanced -> Shell Variables

它的作用类似于指向您的 Ruby 活动版本的别名。

截图:http ://cl.ly/23Yl

这些说明可在 RVM 网站上找到:https ://rvm.io/integration/textmate/

于 2012-07-31T19:55:41.347 回答
1

为了让 TextMate 使用与命令行相同的 RVM Ruby 解释器,我执行了以下操作:

  • 在命令行上,输入which ruby- 对我来说,这是/Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin/ruby
  • 在 TextMate 首选项中,我添加/Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin到我的PATHshell 变量的前面。
  • 在 TextMate 首选项中,我添加了一个新的 shell 变量GEM_PATH,其值为/Users/mgp/.rvm/gems/ruby-1.9.2-p180:/Users/mgp/.rvm/gems/ruby-1.9.2-p180@global
于 2011-06-24T07:59:55.030 回答
0

这可能发生在您使用 RVM(ruby 版本管理器)而 textmate 不知道的情况下。

rake 测试是否从命令行工作?

于 2010-11-04T02:07:22.733 回答