Переменные сеанса ruby

Я пытаюсь написать базовый тест утверждения:

def assert_session_has ( sessionvar )
    return assert_not_nil session[:sessionvar]
end

когда я компилирую:

def test_auth_bob
    #some setup and other validation methods
    assert_not_nil session[user]
    #more validations...
end

Я получаю следующую ошибку:

test_auth_bob(UserControllerTest):
NameError: undefined local variable or method `user' for #<UserControllerTest:0x3460c28>
/test/functional/user_controller_test.rb:23:in `test_auth_bob'

Есть идеи?

2 ответа

Решение

Вы потеряли двоеточие. Как бы больно это ни звучало, некоторые люди даже не замечают.

def test_auth_bob
    #some setup and other validation methods
    assert_not_nil session[:user]
    #more validations...
end

Без: user ссылается на переменную или метод, с двоеточием user - символ:user. Этот пост в Интернете о символах, кажется, объясняет больше… но я не читал его. Меня зовут от компьютера захватывающий, но медленный эпизод The ​​Wire. Хорошо.

Где вы заявляете user в вашем test_auth_bob функционировать? Переводчик жалуется, что символ не определен.

Другие вопросы по тегам