我正在尝试设置simple_form
产品/购物车场景,但与典型场景略有不同。我的显示器需要列出所有可用产品并为每个产品输入数量。保存后,cart_items 应该存储cart_id
, product_id
, 并且qty
仅用于那些提供了数量的项目。如果它是空白或零,则不应添加到cart_items
大车:
class Cart < ApplicationRecord
has_many :cart_items
has_many :products, through: :cart_items
accepts_nested_attributes_for :cart_items
end
购物车物品:
class CartItem < ApplicationRecord
belongs_to :cart
belongs_to :product
end
产品:
class Products < ApplicationRecord
has_many :cart_items
has_many :carts, through: :cart_items
end
我正在尝试显示我的表单,例如:
[ x ] (Qty) Product Name
[ x ] (Qty) Product Name
[ x ] (Qty) Product Name
[ x ] (Qty) Product Name
我不确定如何使用 qty 获得额外的字段f.association :cart_items, collection: Products.all()
,我尝试了这个:
<%= f.simple_fields_for :cart_items do |fa| %>
<%= fa.association :product, as: :select %>
<%= fa.input :qty %>
<% end %>
但这仅显示现有关联,并且还在选择列表中显示产品,而我只想列出所有产品并显示它们的关联数量。
有没有一种我忽略的漂亮而漂亮的“Rails-y”方式来做这件事,还是我需要在我的控制器和视图中做更多的手动操作?我正在使用 Rails 5。