2017-02-10 50 views
1

在我的ruby on rails网站中,我列出了希望允许用户向愿望清单添加列表的列表。我的房源模型has_many心愿和我的心愿单模型has_and_belongs_to_many房源。Ruby on Rails - 获取所选单选按钮的模型ID

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和前端开发的新手,所以我可能缺少一个简单的概念;任何指针都非常感谢。

回答

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 %> 
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 
相关问题