如何在rails中的购物车中添加多个项目?

问题描述 投票:-1回答:1

我有一些问题,在我的简单的商店在Rails。我想在购物车中添加一组选择的产品,但我不知道如何添加,我在我的3组产品上使用单选按钮,我想让用户选择所有的3个项目,然后按 "添加到购物车 "按钮。

我在我的3组产品上使用了单选按钮,我想让用户选择所有3个项目,然后按 "添加到购物车 "按钮。

在购物车中,必须用这样的数组:username-mix(1-id, 2-id, 3-id)。但我还有一个问题。但我还有一个问题,我无法得到我的产品的ID,不知道为什么。

产品都是来自 seed.db 与领域。:category_id, :menu_id, :title, :price, :discribe and :path_to_image.

这是我的代码。

 class ProductController < ApplicationController
   before_action :admin_user, only: :edit

   def show
     @products = Product.where("category_id = 1").limit(3)
     @products2 = Product.where("category_id = 2").limit(3)
     @products3 = Product.where("category_id = 3").limit(3)
   end

   private

   def product_params
     params.permit(
       :category_id,
       :menu_id,
       :title,
       :discribe,
       :price,
       :path_to_image
     )
   end
 end

我的 Product 模型。

class Product < ApplicationRecord
  validates :title, presence: true
  validates :price, presence: true
  belongs_to :category
end

product/show/html.erb

<div class="col-md-4 about-left">
  <table class="tfood">
    <td><p><b>Main</b></p></td>
    <% @products.each do |i| %>
      <tr>
        <td>
          <%= i.title %><%= image_tag i.path_to_image %>
        </td>
        <td>
          <%= i.discribe %>
          <p><b>Price: <%= i.price %></b></p>
          <input name="main" type="radio" value="">
        </td>
      </tr>
    <% end %>
  </table>
</div>
<div class="col-md-4 about-left">
  <table class="tfood">
    <td>
      <p><b>Topping</b></p>
    </td>
    <% @products2.each do |i| %>
      <tr>
        <td>
          <%= i.title %>
          <%= image_tag i.path_to_image %>
        </td>
        <td>
          <%= i.discribe %>
          <p><b>Price: <%= i.price %></b></p>
          <input name="topping" type="radio" value="">
        </td>
      </tr>
    <% end %>
  </table>
</div>
<div class="col-md-4 about-left">
  <table class="tfood">
    <td>
      <p><b>Drink</b></p>
    </td>
    <% @products3.each do |i| %>
      <tr>
        <td>
          <%= i.title %>
          <%= image_tag i.path_to_image %>
        </td>
        <td>
          <%= i.discribe %>
          <p><b>Price: <%= i.price %></b></p>
          <input name="drink" type="radio" value="">
        </td>
      </tr>
    <% end %>
  </table>
</div>
<script>
  function add_to_cart(id){
    var x = window.localStorage.getItem(id);
    x = x * 1 + 1;
    window.localStorage.setItem(id, x);
  }
</script>
javascript ruby-on-rails shopping-cart
1个回答
0
投票

看起来你没有在单选按钮中设置值。也许写一些类似的东西会更好

<input name="drink" type="radio" value=<%= i.id %>>

注 我没有在IDE中检查我的代码,这只是想法。其实我一年前就用过ERB,我不清楚语法。

© www.soinside.com 2019 - 2024. All rights reserved.