0

私は、ユーザーがサインアップしたり、ログインしたり、教育目的で質問を表示したり対話できる小さなアプリケーションを作ろうとしています。レールを複数選択するクイズをモデル化して統合する方法は?

私はすべてを視覚化することができますが、実際のコードに変換するのは問題です。私は質問のモデルが

Question Title - as a string or text 

Question Answer 1 - as a string or text 

Question Answer 2 - as a string or text 

Question Answer 3 - as a string or text 

Question Answer 4 - as a string or text 

Question CORRECT ANSWER 5 - as a string or text 

を持っているだろうことを知っている

は当然のことながら、私はstrong_paramsは、これらの属性受け入れる必要があります(パラメータを?)にも知っています。

new-question.html.erbフォームが5つのオプションの配列を渡し、正しいものとしてマークする機能を持つモデルを作成するにはどうすればよいですか?さらに、各ページの読み込み時に回答の選択肢をシャッフルまたはランダム化したいと思います。

助けや指導が役に立ちます。 Michael Hartlのチュートリアルは素晴らしかったが、私はそれが欠落しているか、物事がクリックされていないかどうか分からない。

答えて

1

回答の数が常に5以下の場合、答えに5つのテキストフィールドを含む質問モデルを使用しても問題はありません。あなたはまた、最初の答えをデフォルトにすることもできます。正しい答えが表示され、質問と回答を表示するビューで回答をシャッフルします。

rails g model Question title:text correct_answer:text answer_1:text answer_2:text ... 

あなたはただそう質問、回答、およびネストされたフォームのために別のモデルとあまり気にしない入門しています。単純にする。データベーススキーマのための

+0

最初の回答をデフォルトにすることはどういう意味ですか?理想的には、ユーザーは「回答を表示」ボタンをクリックして正しい答えを表示できます。その要因はどうですか?ありがとう。 – mazing

+0

私は、正解が最初のものであると仮定しているので、正しい答えを記録するための余分なフィールドは必要ありません。私はそれをより明確にするために答えを更新しました。 – tungd

1

サンプル

create_table "questions", force: :cascade do |t| 
    t.references "quiz_id" 
    t.string "question_word" 
    t.string "option1" 
    t.string "option2" 
    t.string "option3" 
    t.string "option4" 
    t.integer "answer",   default: 0 
    t.integer "score",    default: 2 
    t.datetime "created_at",     null: false 
    t.datetime "updated_at",     null: false 
    end 

    create_table "quizs", force: :cascade do |t| 
    t.string "quiz_name" 
    t.string "notes" 
    t.datetime "created_at",     null: false 
    t.datetime "updated_at",     null: false 
    end 

    create_table "user_quiz", force: :cascade do |t| 
    t.references "user_id" 
    t.references "quiz_id" 
    t.integer "score",   default: 0 
    end 

サンプルモデルの関係、あなたがradio_button_tagを使用することができます選択するユーザーのための4つのモデル、ユーザ、クイズ、質問、UserQuiz

class Quiz < ActiveRecord::Base 
    has_many :questions 
    has_many :user_quizs 
    has_many :users, :through => :user_quizs 
    end 

    class User < ActiveRecord::Base 
    has_many :user_quizs 
    has_many :quizs, :through => :user_quizs 
    end 

    class Question < ActiveRecord::Base 
    belongs_to :quiz 
    end 

    class UserQuiz < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :quiz  
    end 

があり、ここにあるlink to learn

関連する問題