我想顯示發佈項目的用戶的名稱。唯一的一點是Item.last.user
== nil
。用戶返回零。不知道該怎麼辦
我已經在模型中設置了has_many
和belongs_to
關係。
以下是項目控制的params哈希表:
def item_params
params.require(:item).permit(:name, :quantity, :boughtfor, :soldfor, :user_id)
end
請注意,我:user_id
是存在的。
架構的項目:
create_table "items", force: true do |t|
t.string "name"
t.integer "quantity"
t.integer "boughtfor"
t.integer "soldfor"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
end
如何讓用戶不nil
?
最新通報
創建項目控制器動作:
def create
@item = Item.new(item_params)
respond_to do |format|
if @item.save
format.html { redirect_to @item, notice: 'Item was successfully created.' }
format.json { render action: 'show', status: :created, location: @item }
else
format.html { render action: 'new' }
format.json { render json: @item.errors, status: :unprocessable_entity }
end
end
end
有一件有用的事情是對數據庫表上的Item和約束進行驗證,以確保始終設置用戶。檢查你的Rails服務器日誌輸出。你看到關於未經許可參數的警告嗎?你確定'user_id'設置正確嗎? – fivedigit
另外,你的'Item'新窗體是什麼樣的?它是嵌套形式嗎? – fivedigit