Подтвердить что ты не робот

Rails странная ошибка => IndexError: строка не соответствует

У меня очень странная ошибка сообщения. Я думаю, что это не из Ruby, а из системы unix.

Итак, у меня есть следующий тестовый файл:

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

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

Итак, ничего не происходит из файлов YAML в каталоге Fixtures.

Когда я запускаю тест выше с помощью команды:

$ 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)

4b9b3361

Ответ 1

Это происходит, например, когда вы пытаетесь получить доступ к строковой переменной как Хэш по ошибке.

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

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

Дополнительная информация

Ответ 2

Как указывает Симоне, ошибка возникает, когда вы думаете, что у вас есть хэш, но на самом деле это строка. Это подлинное исключение Ruby. У меня было исключение из-за опечатки в моем коде. В вашем случае я не уверен в причине, но это может быть связано с комбинацией версий Ruby/Rails.

Вы можете попробовать вверх/вниз сортировать Ruby или Rails, чтобы узнать, исправляет ли это.

Для нескольких версий Ruby я настоятельно рекомендовал "RVM": http://rvm.beginrescueend.com/