Ruby on rails - 获取所选单选按钮

时间:2017-02-10 03:20:21

标签: ruby-on-rails ruby

在我的ruby on rails网站上,我展示了我希望允许用户将列表添加到心愿单的列表。我的商品详情 has_many 愿望清单,以及我的心愿单模型 has_and_belongs_to_many 商品信息。

我的 add_listing_to_a_wishlist.html.erb 文件如下所示:

<table>
  <tbody>
    <% @wishlists.each do |wishlist| %>
    <tr>
      <%= radio_button_tag("wishlist[id]", wishlist.id) %>
      <%= wishlist.name %>&nbsp;
    </tr>
    <% end %>
  </tbody>
</table>
<%= link_to "Add listing to selected wishlist", wishlist_path %>

使用可点击的单选按钮成功检索并显示每个心愿单。我想将所选的心愿单(选定的单选按钮)传递到链接:

<%= link_to "Add listing to selected wishlist", wishlist_path %>

在我的列表控制器中,我有一个 add_listing_to_wishlist 功能,我计划使用相应列表和心愿单的ID来添加列表。它看起来像:

  def add_listing_to_wishlist
    @listing = Listing.find(params[:id])
    @wishlists = Wishlist.find(params[:id])
    # [Logic for saving listing to wishlist here]
  end

如何有效地将选定的心愿单从UI传递到此功能?

我是Ruby on Rails和前端开发的新手,所以我可能错过了一个简单的概念;任何指针都非常感激。

2 个答案:

答案 0 :(得分:1)

您需要将名称保留为所需的参数并更改值

<table>
  <tbody>
    <% @wishlists.each do |wishlist| %>
    <tr>
      <%= radio_button_tag("wishlist", wishlist.id) %>
      <%= wishlist.name %>&nbsp;
    </tr>
    <% end %>
  </tbody>
</table>

在控制器中

 def add_listing_to_wishlist
    @listing = Listing.find(params[:id])
    @wishlists = Wishlist.find(params[:wishlist])
    # [Logic for saving listing to wishlist here]
  end

答案 1 :(得分:1)

我不知道也许我的方式不好,但它对我有用。只需在代码中添加表单即可。

<%= form_tag wishlist_path, method: :patch, remote: true do %>
<table>
  <tbody>
    <% @wishlists.each do |wishlist| %>
    <tr>
      <%= radio_button_tag("wishlist[id]", wishlist.id) %>
      <%= wishlist.name %>&nbsp;
    </tr>
    <% end %>
  </tbody>
</table>
<%= submit_tag 'Add to wishlist', class: 'btn btn-primary' %>
<% end %>