我有以下的测试写的RSpec:RSpec的“未定义的局部变量或方法'用户'”
describe '#create' do
...
it 'redirects users to profile page' do
response.should redirect_to user_path(user)
end
...
...
并在下面我UsersController
:
def create
@user = User.new(params[:user])
if @user.save
redirect_to user_path(@user)
end
end
有谁知道这是为什么返回以下错误:
NameError: undefined local variable or method 'user'
我也试过ç挂这是在两种情况下,而不是user_path(user)
root_url
,它给了一个不同的错误说:
Expected response to be a <:redirect>, but was <200>
有谁知道这个问题可能是什么?我已经仔细检查了我的代码,并在网上发布了类似的问题,但一直未能找到解决方案。预先感谢任何帮助!
我试着输入并且现在抛出这个错误:'没有路由匹配{:action =>“show”,:controller =>“users”}'。但是,我在我的routes.rb文件中拥有'resources:users',控制器中的show动作和show view。任何想法为什么发生这种情况? – Justin
那么,在控制器中它应该通过@user的'id',你的意思是在规范中吗?我检查了'test.log'文件,似乎用户正在正确地输入到数据库中,但有没有另一种方法来测试? – Justin
尝试使用'app.user_path(User.first)'这样的东西在控制台中测试'user_path'来查看路由是否按预期工作。 – Mori