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

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

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

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

Q&A

0回答

680閲覧

選択問題を10問連続で出題したい

atsdknbs

総合スコア1

Ruby on Rails

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

0グッド

0クリップ

投稿2020/09/12 14:37

編集2020/09/12 20:42

前提・実現したいこと

railsで開発してます。
基本情報の過去問道場のように、問題を解いたら次の問題に飛ぶようなサイトを作成したいです。
現時点では、同じ問題をループしてしまいます。
choiceテーブルとchoicekadaiテーブルがあります。
choicekadaiのshutudaiというカラムに["37", "42", "50", "47", "40", "36", "51", "39", "48", "43"] のような配列が入っています。この配列の中身を一つずづ取り出し、その中身に一致するidのchoiceテーブルの問題に飛ぶようにしたいです。
shutudaiに入っている配列の問題を連続で出題するにはどうしたらいいのでしょうか?
"37"から"42"まではできたのですが、"42"から永遠に"42"しか表示されません。
アドバイスよろしくお願い致します。

choiceテーブル(問題テーブル)
id|title|created_at|updated_at|setumon|one|two|three|four|kaisetu|hint|chapter|
title:タイトル
setumon:問い
one,two,three,four:選択肢4つ
kaisetu:解説
hint:ヒント
chapter:問題の内容によってchapterわけしてます

choicekadaiテーブル(課題テーブル)
id|kadai|created_at|updated_at|shutudai|kigen|
kadai:課題のタイトル("課題(forループ)"など)
shutudai: 例:["37", " 42", " 50", " 47", " 40", " 36", " 51", " 39", " 48", " 43"]
kigen:期限

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

エラーはなし。

該当のソースコード

<show.html.erb>

<div class="main choices-show"> <div class="container"> <div class="choices-shuffle-item"> <p> <%= "チャプター:" %> <%= @choice.chapter %> </p> <p> <%= "タイトル:" %> <%= @choice.title %> </p> <p> <%= "設問:" %> <%= @choice.setumon %> </p>
<body> <%= form_with url: "/choices/#{@choicekadai.id}/choice/#{@choice.id}/response_params", local: true do |f| %> <%= f.radio_button :choice, @random[0][0] %> <%= f.label :choice, @random[0][1] %> <%= f.radio_button :choice, @random[1][0] %> <%= f.label :choice, @random[1][1] %> <%= f.radio_button :choice, @random[2][0] %> <%= f.label :choice, @random[2][1] %> <%= f.radio_button :choice, @random[3][0] %> <%= f.label :choice, @random[3][1] %>  <%= f.submit "送信" %> <% end %> <br> </div>
</div> </div>

<choice_controller.rb>
def response_params
@choice = Choice.find_by(id: params[:id]) #42
@choicekadai = Choicekadai.find_by(id: params[:kadai_id]) #21
@str = @choicekadai.shutudai
@str = @str.delete("[").delete("]").delete('""').split(',') # ["37", "42", "50", "47", "40", "36", "51", "39", "48", "43"]
@in = @str.index(%Q{params[:id]}).to_i
@ar = @str[@in+1].to_i
redirect_to("/choices/#{@choicekadai.id}/choice/#{@ar}")
end

試したこと

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

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

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

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

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

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

y_waiwai

2020/09/12 15:56

で、しつもんはなんでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問