2010-01-15 94 views
19

我有一個非常奇怪的消息錯誤。我認爲它不是來自Ruby,而是來自unix系統。Rails奇怪的錯誤=> IndexError:字符串不匹配

所以,我有以下的測試文件:

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

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

所以,沒有從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下工作)

回答

44

出現這種情況,例如,當您嘗試訪問一個字符串變量作爲錯誤的哈希值。

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

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

Additional Information

0

正如西蒙所指出的,當你認爲你有一個哈希值但實際上它的字符串錯誤引起的。它是一個真正的Ruby異常。由於我的代碼中存在拼寫錯誤,因此我有例外。在你的情況下,我不確定原因,但它可能與Ruby/Rails版本的組合有關。

你可以嘗試向上/向下分級Ruby或Rails來查看是否修復它。

對於多個Ruby版本,我強烈推薦使用「RVM」:http://rvm.beginrescueend.com/