簡體   English   中英

Rails3更新現有記錄,同時創建新記錄

[英]Rails3 update existing record, create new simultaneously

報價模型具有許多變量。 可以將報價作為LineItem添加到購物車。 引用has_many:line_items,

LineItem 
  belongs_to :quote
  accepts_nested_attributes_for :quote

這個想法是,如果將報價添加到購物車中,則其狀態更改(:final => true)在其show操作實例中的quote_controller

 @line_item = LineItem.new

Quote的show視圖包括一個需要同時做兩件事的表單:

  1. 創建line_item。 這是由<%= f.hidden_field :quote, :value => @quote.id %>
  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返回錯誤的undefined method 'model_name' for NilClass:Class 奇怪的是,上下文已經是那個模型。

問題是一條花園小徑。 錯誤是

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 %>

然后,購物車包含所有報價以及所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM