用动态 Select 形式替换 button_to

Replacing button_to with dynamic Select form

我完全是表格的初学者,只是想驯服它但没有希望的 atm。

我有以下 button_to 设置:

<% @product.variants.each do |variant| %>
    <div><%= variant.asin %></div>
    <div><%= variant.price %></div>
    <div><%= button_to "Add to cart", shopping_cart_path(:variant_id => variant) %></div>
<% end %>

这很好用,问题是它为每个产品创建了几个按钮。

我想实现的是只有一个按钮和select,如下图。我需要遵循哪些方向才能动态传递此哈希值。

您可以使用 select_tag and use it nested inside a form_tag。您将有一个 form,其中包含一个 select 标签。

您的代码应与此类似:

<%= form_tag shopping_cart_path do %>
  <%= select_tag('variant', options_from_collection_for_select(@product.variants, "id", "asin")) %>
  <%= submit_tag "Create" %>
<% end %>

注意:上面的代码未经测试,但它应该让您了解应该如何处理这个问题。