我試圖用兩個其他表中的ID填充連接表,添加用戶ID相對容易,因爲設計但其他Id正在給出我在創建方法問題。如何使用控制器中的創建方法填充連接表
UserItems表保存其id爲user_id和item_id,其兩個表之間的鏈接允許多對多關係。
這裏是代碼
def create
@user_item = UserItem.new(user_item_params)
@user_item.user_id = current_user.id
@user_item.item = Item.find(params[:item_id])
if @user_item.save
redirect_to @user_item, notice: 'successfully created.'
else
render action: 'new'
end
end
user_item_params在user_items_controller.rb的方法以及
def user_item_params
params.require(:user_item).permit(:item_id, :user_id)
end
此行
@user_item.item = Item.find(params[:item_id])
是行,我認爲我有錯,我不認爲它用正確的項目ID填充表格。
我正在通過測試驅動開發來做到這一點,當前失敗的測試應該得到一個404,如果一個用戶或項目不存在給定的user_item。由於404沒有找到這些項目時自動呈現添加這些代碼行應該修復。但他們不是。
我在代碼中設置了正確的關係,我不想用完整的控制器來混淆問題。
與往常一樣,任何幫助非常感謝,感謝您的時間。
你在哪裏設置你的'@ item'變量,如果你有一個名爲項目和模型中使用? –
這就是問題,我沒有@item在這裏設置我試過'@item = Item.find(params [:id])'但那不起作用,我以爲我會離開我放的代碼這裏以其最簡單的破碎形式。 –