前提・実現したいこと
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></div> </div><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>
<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/ツールのバージョンなど)
あなたの回答
tips
プレビュー