У меня проблема в моем простом магазине на рельсах. Я хочу добавить группу выбранных продуктов в корзину, но не знаю, как.
Я использую переключатели на своих 3 группах продуктов и хочу, чтобы пользователь выбрал все 3 элемента, а затем нажал кнопку «добавить» в корзину ».
В корзине он должен быть таким массивом: username-mix (1-id, 2-id, 3-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>