2017-02-10 2 views
1

На моем сайте 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 функции, где я планирую использовать идентификаторы из соответствующего списка и чтобы добавить список. Это выглядит так:

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

Как эффективно передать выбранный список желаний из пользовательского интерфейса в эту функцию?

Я новичок в 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 
Смежные вопросы