Ответ 1
Это происходит, например, когда вы пытаетесь получить доступ к строковой переменной как Хэш по ошибке.
s = "a string"
s["position"] = "an other string"
IndexError: string not matched
from (irb):5:in `[]='
from (irb):5
У меня очень странная ошибка сообщения. Я думаю, что это не из 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)
Это происходит, например, когда вы пытаетесь получить доступ к строковой переменной как Хэш по ошибке.
s = "a string"
s["position"] = "an other string"
IndexError: string not matched
from (irb):5:in `[]='
from (irb):5
Как указывает Симоне, ошибка возникает, когда вы думаете, что у вас есть хэш, но на самом деле это строка. Это подлинное исключение Ruby. У меня было исключение из-за опечатки в моем коде. В вашем случае я не уверен в причине, но это может быть связано с комбинацией версий Ruby/Rails.
Вы можете попробовать вверх/вниз сортировать Ruby или Rails, чтобы узнать, исправляет ли это.
Для нескольких версий Ruby я настоятельно рекомендовал "RVM": http://rvm.beginrescueend.com/