0

私のアプリケーションのモデルは、 has_many indents のSupplierhas_many indent_items のIndent 、 has_many の出荷のIndentItem 、belongs_to Commercial_invoice 、CommercialInvoiceです。

次のコードは、CommercialInvoiceController のeditメソッドにあります。

def edit
  @commercial_invoice = CommercialInvoice.find(params[:id])

  @shipments = Shipment.includes(:indent_item => [:indent => :supplier]).where
  (:invoice_date => @commercial_invoice.start_date..@commercial_invoice.end_date).where
  (:indents => {:supplier_id => @commercial_invoice.supplier_id})
end

編集ページでは、@shipments 変数を使用して、チェック ボックス付きのリストを表示しています。編集ページを開くと、リストが正常にレンダリングされます。ただし、一部の検証が失敗した場合の更新中に、編集ページがエラーで再度レンダリングされますが、今回は @shipments 変数が空白です。

そのため、コンソールを確認したところ、編集ページがエラーで再度レンダリングされたときに、コードがまったく実行されていないようです。

何が起こっているのか理解できません。ここで私を助けてください。

ありがとう。

4

2 に答える 2

1

最初の編集ビューからフォームを送信するとupdate、コントローラーのアクションに送信されます。編集ビューで使用されるのと同じ変数を設定する必要があります。そうしないと、ビューが正しくレンダリングされません。

于 2013-07-21T21:15:28.510 に答える
0

ビューをレンダリングするだけだからです!編集/フォームに必要なすべてのオブジェクトは、すでに設定されているはずですよね?

于 2013-07-21T21:14:07.050 に答える