質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

1939閲覧

[ラジオボタン]複数の値を渡したい

atsdknbs

総合スコア1

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/18 00:36

編集2020/09/18 01:51

前提・実現したいこと

ラジオボタンを使った選択問題をループで10問並べています。
一問のみの場合は、選択したものの値をコントローラに送ることができているのですが、
ループで複数にすると最後の問題の選択した値しかコントローラに送られません。

どうしたら、ラジオボタンで選択した値を複数同時にコントローラに渡すことができるでしょうか。
よろしくお願い致します。

発生している問題・エラーメッセージ

該当のソースコード

rails

1<div class="main choices-show"> 2 <div class="container"> 3 <div class="choices-shuffle-item"> 4 <div class="field"> 5 <% @choicekadai %> 6 <% @shutudai = @choicekadai.shutudai %> 7 <% @shutudai = @shutudai.delete("[").delete("]").delete('""').split(',') %> 8 9 <% @shutudai.each do |shutudai| %> 10 <% @choice = Choice.find_by(id: shutudai) %> 11 <% random = [] %> 12 <% @random = [["choice_one",@choice.one],["choice_two",@choice.two],["choice_three",@choice.three],["choice_four",@choice.four]] %> 13 <% @random.shuffle! %> 14 15 16 17 <p> 18 <%= "チャプター:" %> 19 <%= @choice.chapter %> 20 </p> 21 <p> 22 <%= "タイトル:" %> 23 <%= @choice.title %> 24 </p> 25 <p> 26 <%= "設問:" %> 27 <%= @choice.setumon %> 28 </p> 29 30 <body> 31 <%= form_with url: "/choices/#{@choicekadai.id}/response_params",local: true do |f| %> 32 <%= f.radio_button :choice, @random[0][0] %> 33 <%= f.label :choice, @random[0][1] %> 34 <%= f.radio_button :choice, @random[1][0] %> 35 <%= f.label :choice, @random[1][1] %> 36 <%= f.radio_button :choice, @random[2][0] %> 37 <%= f.label :choice, @random[2][1] %> 38 <%= f.radio_button :choice, @random[3][0] %> 39 <%= f.label :choice, @random[3][1] %> 40 <p> 41 <%= "--------------------------------------------------------------------" %> 42 </p> 43 <%= f.submit "送信" %> 44 <% end %> 45 <br> 46 </div> 47 <% end %> 48 </div> 49 </div> 50</div> 51

試したこと

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atsdknbs

2020/09/18 01:52

承知致しました。 修正します。
guest

回答1

0

これですとどのloopでも同じ name "url[choice]" になってしまいます。
同じnameの場合は最後の要素の値がサーバーに送られます。
のでそういう結果になります。
"url[choice][0]"  "url[choice][1]" となるようにすれば全部の値が取れます。
f.radio_button に optionで name: "url[choice][#{i}]" とかして。
controllerでの処理に工夫がひつようになるかも、ですが。

あと、formが復数できています。これですとsubmitが囲まれている部分しか送られません。formは全体を囲むようにしてください

投稿2020/09/18 12:46

winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問