2016-05-15 83 views
0

我在rails中有一個帶有輸入值的表單,其中一個值是LOV(值列表),第二個輸入字段也是LOV,但取決於另一個輸入領域。 第一個字段的輸入值不保存在中間。所以我需要在保存之前使用該字段值。 因此,示例: 我從現場供應商的所有公司的值列表中選擇一個公司,第二個字段supplier_address將是包含該公司所有地址的LOV,因此第二個字段的LOV取決於在第一個領域選擇的價值,公司。rails在保存之前使用表單輸入值

我試了一下:

def new 
    @purchase_requisition = PurchaseRequisition.new 
    @purchase_requisition.number = find_next_user_value("Purchase_Requisition") 
    #@purchase_requisition.supplier_address_id = PurchaseRequisition.new.purchase_requisition_params[:supplier_id] 
    @purchase_requisition = PurchaseRequisition.new(purchase_requisition_params) 

    respond_to do |format| 
     @purchase_requisition.supplier_address_id = PurchaseRequisition.new.purchase_requisition_params[:supplier_id] 
    end 
    end 

,但我仍然得到錯誤:

param is missing or the value is empty: purchase_requisition

有人可以幫我嗎? 謝謝!!!

回答

1

您遇到的錯誤不是由您提供的代碼引起的。您可能正在使用強參數並使用如下方法:

​​

問題是params[:purchase_requisition]不存在。可能是因爲您的視圖中的form_for未引用purchase_requisition對象。嘗試添加as:form_for送下param所鍵您的PARAMS:

form_for @requisition, as: :purchase_requisition, .... 

否則,你就必須張貼關於您的視圖和控制器的詳細信息,以幫助找出你所遇到的問題。

此外,在控制器代碼你想要的:

PurchaseRequisition.new(purchase_requisition_params[:supplier_id]) 

相反的:

PurchaseRequisition.new.purchase_requisition_params[:supplier_id] 
0

我在軌新靜得讓很多的錯誤...... 我在哪裏放這個:

def purchase_requisition_params 
    params.require(:purchase_requisition).permit #(some list of attributes) 
end 

你能詳細告訴我更詳細的究竟是什麼放在哪裏嗎?

+0

你是如何發送的值?你在「purchase_requisition」對象中有什麼參數。要允許屬性,你可以像 params.require(:purchase_requisition).permit(:name,:age,:params_c)這樣做,如果你有名字,年齡和param_c作爲你的參數 –

+0

這是我的參數: (對不起,我是Ruby的新手):id,:org_id,:document_type,:number,:supplier_id,:supplier_address_id,:partner_id, :project_id,:construction_site_id,:purchase_order_date,:expected_receiving_date,:promised_receiving_date,:supplier_order_number,:supplier_shipping_number,:supplier_invoice_number,:currency,:status – RORStarter

+0

也許一切正確,但我不確定把所有這些放在哪裏...... – RORStarter

0

假設,所有參數都屬於同一個對象(不存在任何嵌套的屬性),這可能是你在找什麼:

def purchase_requisition_params 
    params.require(:purchase_requisition).permit(:org_id, :document_type, :number, :supplier_id, :supplier_address_id, :partner_id, :project_id, :construction_site_id, :purchase_order_date, :expected_receiving_date, :promised_receiving_date, :supplier_order_number, :supplier_shipping_number, :supplier_invoice_number, :currency, :status) ##you don't need id here 
    end 
相關問題