前提・実現したいこと
ここに質問の内容を詳しく書いてください。
初質問です。プログラミング初学者です。よろしくお願いいたします。
railsで下記URLを参考にして英単語の正誤判定ができるアプリを作成しています。(日本語を表示して、英単語を入力させる)
Ruby on Rails のクイズアプリ作成 idの受け渡しについて
基本的な機能は実装できており自分でデータベースに登録した英単語と入力した英単語を照らし合わせて◯✖️を出せるようにはできました。
次段階として英単語ドリル(予め用意した問題にチャレンジする)のような機能を実装しようと思い、ドリルを用意するに当たってactive_hashを利用しようと考えました。
データベースから中身を取り出すように、active_hashからも日本語を取り出すことは出来たのですが、「回答」ボタンを押すと
下記画像のようなエラーメッセージが発生しました。
発生している問題・エラーメッセージ
該当のソースコード
ruby
1#routes.rb 2 resources :tangos, only: [:index, :new, :create, :destroy, :show] do 3 collection do 4 get 'drilltest', to: "tangos#drilltest" 5 post 'drillmark', to: "tangos#drillmark" 6 end 7 end 8 9#tangos_controller 10 def drilltest 11 @quizzes = Drill1.all 12 end 13 14 def drillmark 15 quizzes = Drill1.find(params[:quiz]) 16 @ansers = [] 17 quizzes.each do |q| 18 @ansers << {quiz: q, right: q.anser?(params["quiz#{q.id}"])} 19 end 20 end 21 22#tango.rb/model 23class Tango < ApplicationRecord 24 extend ActiveHash::Associations::ActiveRecordExtensions 25 attr_accessor :left_question, :right_anser 26 belongs_to_active_hash :drill1 27 28 def anser?(reply) 29 return self.anser == reply 30 end 31end 32 33#drilltest.html.haml 34 =form_tag drillmark_tangos_path do 35 -@quizzes.each do |quiz| 36 =quiz.question 37 =hidden_field_tag "quiz[]", quiz.id 38 =text_field_tag "quiz#{quiz.id}" 39 =submit_tag "回答" 40 41#drillmark.html.haml 42 -@ansers.each do |anser| 43 =anser[:quiz].question 44 =anser[:quiz].anser 45 =anser[:right] ? "◯" : "✖️" 46 47#drill1.rb/active_hashのfale 48class Drill1 < ActiveHash::Base 49 self.data = [ 50 {id: 1, question: 'その', anser: 'the'},{id: 2, question: '~の', anser: 'of'}, 51 {id: 3, question: '~を持つ', anser: 'have'},{id: 4, question: 'あなた', anser: 'you'}, 52 {id: 5, question: '彼', anser: 'he'},{id: 6, question: '~と一緒に', anser: 'with'}, 53 {id: 7, question: '~として', anser: 'as'},{id: 8, question: 'しかし', anser: 'but'}, 54 {id: 9, question: '~と言う', anser: 'say'},{id: 10, question: '私たち', anser: 'we'}, 55 ] 56end
試したこと
1.binding.pry
controllerのdrillmarkにてparamsにidと中身は入っている
2.error文のexpected0はgiven1に対してデータの受け取り側?が出来ていないと解釈(調べましたがいまいち自信ないです)
3.下記のようなデータベースの内容は取り扱い出来ているのでactive_hashのモデルに直接書き込んだデータの取り扱いとrubyの理解が甘いのだとは思っているのですが、1日使ってしまい進展がなかったため質問させていただきました。
実装済みの動作のgif。active_hashだとできなかった
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。