我是ROR的新手。我正在构建简单购物车解决方案,以便练习,这样我就不想使用宝石(例如狂欢)。
有一个产品列表页面。在每个产品的旁边,有添加到购物车按钮。
<%= button_to 'Add to Cart', line_items_path(product_id: product), remote: true %>
此按钮将转到 line_items_controller #create 方法。只需将订单项创建或增加一个。
def create
session[:counter] = 0
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id) # @cart is actually Cart Model
...
end
我的问题是如何在产品列表页面的“添加到购物车”按钮旁边添加数量text_field 。此数量text_field 也会发布到 line_items_controller #create 方法,但该订单项将使用此数量创建。
我很困惑,如果我使用表单助手,我需要在这种情况下引用哪个模型对象。有没有其他方法可以在不使用form_helpers的情况下添加text_field? 你能建议解决这种情况的最佳方法吗?
我知道这可能是一个非常幼稚的问题,但我真的很困惑大约3个小时。请指导我。
答案 0 :(得分:0)
您可以使用text_field_tag
将此添加到您的表单:
<%= text_field_tag 'quantity' %>
然后在您的创建操作中访问quantity
作为参数:
quantity = params[:quantity]
确保将quantity
参数列入白名单。在Rails 4中:
def line_item_params
params.require(:line_item).permit(:quantity)
end