2017-06-30 53 views
-1

我有POs和項目的模型。項目屬於採購訂單。我希望在創建新項目時將Item.po_id設置爲當前的Po.id,但當表單提交時,由於Po爲空白,所以驗證失敗。麻煩將PO參數傳遞到新項目

在視圖/ POS/show.html.erb,我已經在那裏我嘗試將PO ID傳遞給新項目鏈接:

<%= link_to 'Add items', new_item_path(:item => {:po_id => @po.id}) %> 

在items_controller.rb,我有:

def new 
    @item = Item.new(params[:po_id]) 
    @item.po_id = params[:po_id] 
end 

而且我還沒有在Item窗體中包含po_id的字段,因爲它不應該由用戶修改。

同樣,在這一點上,提交表單驗證失敗,因爲「寶不能爲空」

我在做什麼錯?

回答

1

你做錯了。根據你的代碼,params[:po_id]應該是params[:item][:po_id],因爲你正在通過:po_id裏面的:itemlink_to

+0

不知道我明白了。那麼,代碼會是這樣嗎? '高清新 @item = Item.new(PARAMS [:項目] [:po_id]) @ item.po_id =參數[:項目] [:po_id] end' 我拋出了一個錯誤:在分配屬性,你必須傳遞一個散列作爲參數。 對不起,基本問題 - 我是新來的。 – Coalsand

+0

@Coalsand你在哪一行得到那個錯誤? – Pavan

+0

'@item = Item.new(params [:item] [:po_id]) – Coalsand