我有PO和物品的模型。项目属于PO。我想在创建新项目时将Item.po_id设置为当前的Po.id,但是当表单提交时,由于Po为空白,因此验证失败。
在views / 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的字段,因为它不应该被用户改变。
此时,表单提交未通过验证,因为&#34; Po不能为空白&#34;
我做错了什么?
答案 0 :(得分:1)
你做错了。根据您的代码,params[:po_id]
应该是params[:item][:po_id]
,因为您在:po_id
:item
内传递了link_to