2017-02-10 7 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 %> 

マイリストコントローラでは、私は、それぞれのリストのIDを使用する予定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 

選択したウィッシュリストをUIからこの関数に効果的に渡すにはどうすればいいですか?

私はRuby on Railsとフロントエンド開発の初心者ですので、おそらく単純な概念がありません。任意のポインタが大いに感謝されます。

答えて

1

私は多分私のやり方が良くないかわからない値をしたいのparamとして名を維持し、変更する必要があるが、それは動作します私のために。コードにフォームを追加するだけです。

<%= 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 
関連する問題