我需要將許多物品保存到購物車上,用戶輸入數量一個表單,並且所選物品轉到數據庫,但現在只保存物品的首次輸入數量。爲什麼?如何在一個表單欄上保存多個項目?
我的形式
<%= form_for @cart_item do |f| %>
<% @category.items.each do |item| %>
<%= item.name %>
<%= f.hidden_field :item_id, :value => item.id %>
<%= f.text_field :qty %>
<% end %>
<%= f.submit %>
<% end %>
和控制器 cart_items_controller.rb
class CartItemsController < ApplicationController
before_action :set_cart, only: [:create]
def create
@cart_items = CartItem.create(cart_items_params)
@cart_items.cart_id = @cart.id
if @cart_items.save
redirect_to :back
else
render root_path
end
end
private
def cart_items_params
params.require(:cart_item).permit(:id, :qty, :item_id, :cart_id)
end
def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end