2016-05-15 1 views
0

入力値のあるレールにフォームがあり、値の1つがLOV(値のリスト)で、2番目の入力フィールドもLOVですが、他の入力フィールドに依存しますフィールド。 最初のフィールドの入力値は、間に保存されません。だから私はそれが保存される前にそのフィールド値を使用する必要があります。 例: フィールドサプライヤのすべての会社の値リストから会社を選択すると、2番目のフィールドsupplier_addressはその会社のすべてのアドレスを持つLOVになるので、2番目のフィールドの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_forpurchase_requisitionオブジェクトを参照していない可能性があります。そのparamキーの下に、あなたのparamsを送信するために、あなたform_foras:を追加してみてください:

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"オブジェクトにはどのようなパラメータがありますか?属性を許可するには、パラメーターが –

+0

になるように名前、年齢、param_cがある場合、 params.require(:purchase_requisition).permit(:name、:age、:params_c)のようにすることができます。あなたは値を送信していますか?私は分かりませんが、私はその質問を理解できません!(申し訳ありません!! Rubyの新機能です):id、:org_id、:document_type、:number、:supplier_id、:supplier_address_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、ステータス: – 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 
関連する問題