Rails奇怪的错误=> IndexError:字符串不匹配

时间:2010-01-15 14:37:33

标签: ruby-on-rails unit-testing

我有一个非常奇怪的消息错误。我认为它不是来自Ruby而是来自unix系统。

所以,我有以下测试文件:

require File.dirname(__FILE__) + '/../test_helper' 

class CatTest < ActiveSupport::TestCase
    def test_truth
    assert true
   end
end

因此,没有来自Fixtures目录中的YAML文件。

当我使用以下命令运行上述测试时:

$ ruby ./test/unit/cat_test.rb

我得到了非常奇怪的结果:

Loaded suite ./test/unit/cat_test
Started
E
Finished in 0.011252 seconds.

  1) Error:
test_truth(CatTest):
IndexError: string not matched


1 tests, 0 assertions, 0 failures, 1 errors

我找不到错误的含义

IndexError: string not matched

但最奇怪的是,昨天,它有效!

非常感谢你的帮助。

此致

(我在Ubuntu 9.04下工作)

2 个答案:

答案 0 :(得分:48)

例如,当您尝试错误地将字符串变量作为哈希访问时,会发生这种情况。

s = "a string"
s["position"] = "an other string"

IndexError: string not matched
    from (irb):5:in `[]='
    from (irb):5

Additional Information

答案 1 :(得分:0)

正如Simone指出的那样,当你认为你有一个哈希值时会引起错误,但实际上它是一个字符串。它是一个真正的Ruby例外。由于我的代码中有拼写错误,我有异常。在你的情况下,我不确定原因,但它可能与Ruby / Rails版本的组合有关。

你可以尝试上/下评分Ruby或Rails以查看是否修复了它。

对于多个Ruby版本,我强烈推荐“RVM”:http://rvm.beginrescueend.com/