gpt4 book ai didi

ruby-on-rails - 选择产品的属性,例如尺寸/颜色,而无需创建模型来处理它们

转载 作者:行者123 更新时间:2023-12-04 03:36:33 28 4
gpt4 key购买 nike

我刚刚学习了《使用 Rails 进行敏捷 Web 开发》第 3 版,我正在学习 Depot 应用程序章节,我对产品/项目选项有疑问。

如果我想修改产品目录和商店以便产品可以有选项(尺寸、颜色等),我应该在哪里/如何做?

假设我销售 T 恤,它们有不同的尺码。我觉得这不是真正需要创建模型来处理尺寸的东西,所以我想我可以将它作为选择框添加到商店 View 的 html 中。

但是,每个“添加到购物车”按钮都被一个由 button_to 自动生成的表单标签包裹着,并且似乎没有让我能够将其他参数传递到我的购物车。如何获取添加到 POST 到 add_to_cart 的商品的尺寸?

我眼中的 helper :

<%= button_to "Add to Cart" , :action => :add_to_cart, :id => product %>

它生成的表单:

<form method="post" action="/store/add_to_cart/3" class="button-to">

最佳答案

好的,2天后,我想通了。这是我必须做的-

1、在我的店铺查看:

<% form_for @product, :url => {:action => "add_to_cart", :id => @product} do |f| %>
<select name="productsize" id="productsize">
<option value="L">L</option>
<option value="XL">XL</option>
</select>
<%= f.submit 'Add to Cart' %>
<% end %>

2、添加到我的store controller:

productsize = params[:productsize]
@cart.add_product(product, productsize)

必须从参数中获取产品尺寸,然后将其与产品模型的其余部分一起传递给购物车模型的 add_product 操作。

3、调整购物车模型接受参数,并:

@items << CartItem.new(product, productsize)

将其与产品模型的其余部分一起传递,以创建新的购物车项目并将其添加到项目中。

4、添加到cart_item模型中:

attr_reader :product, :quantity, :productsize

def initialize(product, productsize)
@product = product
@productsize = productsize

读入 productsize 并初始化 Cart Item。

5、添加到我的add_to_cart View :

Size: <%=h item.productsize %>

为用户显示它。

就是这样。如果有更简单或更干燥的方法来解决它,我会洗耳恭听(眼睛?)。

关于ruby-on-rails - 选择产品的属性,例如尺寸/颜色,而无需创建模型来处理它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/276072/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com