我有以下的測試寫的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