0

入力値を持つレールにフォームがあり、値の 1 つは LOV (値のリスト) で、2 番目の入力フィールドも LOV ですが、他のフィールドの入力に依存します。最初のフィールドの入力値はその間に保存されません。そのため、保存する前にそのフィールド値を使用する必要があります。そのため、例: フィールド Supplier のすべての会社の値のリストから会社を選択します。最初のフィールドである会社で選ばれました。

私が試したこと:

  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

しかし、私はまだエラーが発生します:

パラメータがないか、値が空です: purchase_requisition

誰か助けてくれませんか?ありがとうございました!!!

4

2 に答える 2

1

発生しているエラーは、提供したコードが原因ではありません。おそらく強力なパラメーターを使用しており、次のような方法があります。

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

問題は、それparams[:purchase_requisition]が存在しないことです。おそらくform_for、ビューの がpurchase_requisitionオブジェクトを参照していないためです。そのパラメータキーの下にパラメータを送信するためas:にあなたに追加してみてください:form_for

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

それ以外の場合は、発生している問題を特定するために、ビューとコントローラーに関する詳細を投稿する必要があります。

また、コントローラーコードで次のことを行います。

PurchaseRequisition.new(purchase_requisition_params[:supplier_id])

それ以外の:

PurchaseRequisition.new.purchase_requisition_params[:supplier_id]
于 2016-05-15T07:08:20.677 に答える