0

見積もりモデルには多くの変数があります。見積もりは、LineItem としてカートに追加できます。引用 has_many :line_items,

LineItem 
  belongs_to :quote
  accepts_nested_attributes_for :quote

アイデアは、見積もりがカートに追加されると、そのステータスが変更される (:final => true) ということです。

 @line_item = LineItem.new

Quote の show ビューには、次の 2 つのことを同時に行う必要があるフォームが含まれています。

  1. line_item を作成します。これはによって生成されます<%= f.hidden_field :quote, :value => @quote.id %>
  2. 引用を更新します。

2番目の要素が問題です

<%= form_for(@line_item) do |f| %>
 [...]
  <%= fields_for @line_item.quote do |quote_fields| %>
    <%= quote_fields.hidden_field :final, :value => true %>
  <% end %>
<% end %>

これはエラーを返しますundefined method 'model_name' for NilClass:Class。奇妙なことに、コンテキストはすでにそのモデルです。

4

1 に答える 1

0

質問は庭の小道でした。間違いは

A quote can be added to a Cart, as a LineItem.

LineItem は必要ありません。見積もりはカートに属することができます。cart_id を割り当てるとうまくいきます。次に、ショービューには、同じレコードを編集するためのフォームが含まれています

    <%= form_for(@quote) do |f| %>
      <%= f.hidden_field :cart_id, :value => @cart.id %>

カートには、すべての見積もりと必要なものが含まれます。

于 2013-09-20T07:05:00.940 に答える