0
關於這個話題有很多回答的問題,但我似乎無法將答案應用於我的問題。我收到以下錯誤:RSpec ActiveRecord :: RecordNotFound用'id'找不到用戶=
ItemsController POST create redirect to show page
Failure/Error: @user = User.find(params[:user_id])
ActiveRecord::RecordNotFound:
Couldn't find User with 'id'=
我知道原因的錯誤是因爲user_id是零,但我似乎無法找出原因。我還是比較新的Rails,所以如果這是一個非常簡單的修復方案,請原諒我。
RSpec的測試
require 'rails_helper'
RSpec.describe ItemsController, type: :controller do
describe "POST create" do
it "redirect to show page" do
post :create, user_id: @user, item: { name: "name"}
expect(response).to redirect_to(user_show_path)
end
end
end
項目控制器
class ItemsController < ApplicationController
def create
@user = User.find(params[:user_id])
@item = Item.new(item_params)
@item.user = current_user
if @item.save
@item = Item.update_items(params[:items])
redirect_to current_user, notice: "Item was saved successfully."
else
flash[:error] = "Error creating item. Please try again."
render user_show_path
end
end
private
def item_params
params.require(:item).permit(:name)
end
end
路線
user_items POST /users/:user_id/items(.:format) items#create
...我已經我爲用戶部分配置設計。先謝謝您的幫助!
嘗試'後:創建,USER_ID:@ user.id,項目:{名稱: 「名稱」}' –
我想,和錯誤變成:NoMethodError:未定義的方法'id'爲零:NilClass – Tucker
您沒有在您的測試中定義@user。 – BroiSatse