0

私はショッピング カートを持っています。ショー カート ページで、ユーザーが数量を柔軟に更新できるようにしようとしています。編集可能な数量フィールドは 1 つだけにしたいのです。これが私のコードです

class Cart < ActiveRecord::Base
  # attr_accessible :title, :body
  has_many :line_items, dependent: :destroy

class LineItem < ActiveRecord::Base
  belongs_to :product 
  belongs_to :cart
  #before_save :quantity
  attr_accessible :cart_id, :product_id, :quantity


class Product < ActiveRecord::Base
  has_many :photos, :dependent => :destroy
  has_many :line_items
  accepts_nested_attributes_for :photos, :line_items

私からしてみれば

<p id="notice"><%= notice %></p>

<table>
<tr>
    <th> ID </th>
    <th>Name </th>
    <th>Unit Price </th>
    <th> Quantity </th>
    <th>  Price </th>
    <th></th>
</tr>

  <%= render :partial => 'line_item' %>

 </table>
<span> Total </span><%= number_to_currency(Cart.get_total(session[:cart_id])) %>

部分図

  <%  @lineitem.each do |item| %>
   <tr>
<td><%= item.id %>
    <td><%= item.product.name %></td>
   <td><%= number_to_currency(item.product.price) %></td>
     <td><%= item.quantity %></td>(Make this editable with update button)
    <td><%= number_to_currency(LineItem.get_price(item.id,item.product.price)) 
      %></td>
      <td><%= link_to 'Remove', item , confirm: 'Are you sure?', method: :delete  %></td>
        </tr>

         <% end %>
      <%= link_to 'Edit', edit_line_item_path %>


      **Thanks for the reply,**                                              

      <%  @line_item.each do |item| %>
     <tr>
<td><%= item.id %>
    <td><%= item.product.name %></td>
    <td><%= number_to_currency(item.product.price) %></td>
    <td><%= form_for(@line_item) do |f| %>

    <div class="field">
    <%= f.label :quantity %><br />
    <%= f.number_field  :quantity %>
    </div>
    <% end %>
 </td>
   <td><%=      number_to_currency(LineItem.get_price(item.id,item.product.price)) 
   %></td>
    <td><%= link_to 'Remove', item , confirm: 'Are you sure?', method: :delete  %></td>
    </tr>

       <% end %>

item.quantity を編集可能にするにはどうすればよいですか?

4

1 に答える 1

0

この行

attr_accessible :cart_id, :product_id, :quantity

cart_idproduct_idおよびを除くすべての属性を一括代入から保護しますquantity。これは、個別に設定しない限り、他の属性は編集できないことを意味します。他の属性を編集可能にしたい場合は、それらをこの行に追加する必要があります。

@nathanvda と @simonmorley は正しいです。質問をすることを確認し、時間をかけて、あなたを助けてくれる他の人が理解できるようにする必要があります.

于 2012-12-13T20:57:11.660 に答える