rails - 如何将Quantity text_field添加到购物车中的Products列表

时间:2014-02-13 20:09:26

标签: ruby-on-rails ruby cart shopping

我是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个小时。请指导我。

1 个答案:

答案 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