0

現在、ネストされたモデルUser has_many Sales_Orders has_many Itemsがあります。

ネストされたアイテムでSales_Orderを適切に作成できますが、 Sales_Orderを「編集」しようとすると、 Sales_Order情報は表示されますが、アイテムは表示されません。なぜこれらが表示されないのですか?

[sales_orders_controller.rb]
...

def edit
  @sales_order = SalesOrder.find(params[:id])
end


[edit.html.erb]
<% provide(:title, "Edit SO") %>
<h1>Edit Sales Order</h1>

<div class="row">
<div class="span6 offset3">
    <%= form_for(@sales_order) do |f| %>
        <%= render 'shared/error_messages', object: f.object %>

        <div class="span3">
            <%= f.label :so, "SO#:" %>
            <%= f.text_field :so %>

            <%= f.label :customer, "Customer:" %>
            <%= f.text_field :customer %>

            <%= f.label :enter_date, "Date Entered:" %>
            <%= f.text_field :enter_date, value: date_formatter(@sales_order.enter_date) %>

            <%= f.label :request_date, "Request Date:"%>
            <%= f.text_field :request_date, value: date_formatter(@sales_order.request_date) %>

            <%= f.label :comments, "CS Comments:" %>
            <%= f.text_area :comments %>
        </div>

        <div class="span3">
            <% f.fields_for @sales_order.items do |builder| %>  
                <%= render 'item_fields', f: builder %>
            <% end %>
        </div>

        <%= f.submit "Save changes", class: "btn btn-large btn-primary" %>
    <% end %>
</div>
</div>

[_item_fields.erb]
<fieldset>
<%= f.label :item_code, "Item Code:" %>
<%= f.text_field :item_code %>

<%= f.label :qty_in_kg, "Qty (kg):" %>
<%= f.text_field :qty_in_kg %>

<%= f.label :qc_comments, "Comments:" %>
<%= f.text_field :qc_comments %>

<%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
4

2 に答える 2

1

使用する<%= f.fields_for @sales_order.items do |builder| %>

=記号に注意してください。これは、「評価して埋め込む」ことを意味します。

于 2013-04-29T15:23:56.907 に答える
1
<% f.fields_for @sales_order.items do |builder| %>  

する必要があります

<%= f.fields_for @sales_order.items do |builder| %>  

がなければ=、ループ内で出力を構築していますが、戻り値 (生成された HTML 出力) をレンダリング/印刷することはありません。

于 2013-04-29T15:16:07.037 に答える