ruby会话变量

时间:2009-08-31 18:54:37

标签: ruby-on-rails ruby-test

我正在尝试编写基本的断言测试:

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 个答案:

答案 0 :(得分:2)

您在user函数中声明test_auth_bob的位置?口译员抱怨该符号未定义。

答案 1 :(得分:1)

你丢了一个冒号。听起来很痛苦,有些人甚至都没注意到。

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

没有:user引用变量或方法,冒号用户是符号:user。 This post on the internet about symbols似乎解释得更多......但我还没看过。我被电报中的一部惊心动人但又动作缓慢的剧集从电脑中召唤出来。这很好。