0

Ich versuche eine kleine App zu erstellen, in der sich Benutzer anmelden, anmelden und in der Lage sind, Fragen zu Bildungszwecken anzuzeigen und mit ihnen zu interagieren.Wie modelliere und integriere ich ein Rails-Multiple-Choice-Quiz?

Ich kann alles visualisieren, aber ich habe Probleme, das in tatsächlichen Code zu übersetzen.

Ich weiß, dass eine Frage Modell

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 

Natürlich haben wird, weiß ich die strong_params werden diese Attribute akzeptieren (Parameter?) Als auch.

Wie kann ich ein Modell erstellen, bei dem das Formular new-fragment.html.erb ein Array von 5 Optionen mit der Möglichkeit, eines als korrekt zu markieren, übergeben wird? Darüber hinaus möchte ich die Antwortmöglichkeiten bei jedem Laden der Seite mischen oder randomisieren.

Jede Hilfe oder Anleitung wäre hilfreich. Michael Hartls Tutorial ist großartig, aber ich bin mir nicht sicher, ob mir Dinge fehlen oder Dinge nicht klicken.

Antwort

1

Wenn die Anzahl der Antworten immer 5 oder weniger ist, ist es nicht falsch, ein Fragenmodell mit 5 Textfeldern für die Antworten zu verwenden. Sie können auch default die erste Antwort ist die richtige und in der Ansicht zeigt die Frage und Antworten mischen die Antworten.

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

Du bist nur so nicht die Mühe zu viel mit separatem Modell für Frage, Antwort und verschachtelte Form begonnen. Halte es einfach.

+0

Was meintest du mit der Vorgabe der ersten Antwort? Im Idealfall könnte der Benutzer auf eine "Antwort anzeigen" -Schaltfläche klicken, wo er die richtige Antwort anzeigen könnte. Wie würde das aussehen? Vielen Dank. – mazing

+0

Was ich meine, ist davon auszugehen, dass die richtige Antwort die erste ist, so dass Sie kein zusätzliches Feld benötigen, um zu erfassen, welche Antwort richtig ist. Ich habe die Antwort aktualisiert, um sie klarer zu machen. – tungd

1

Probe für Datenbankschema

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 

Beispielmodell Beziehung gibt es vier Modelle, Benutzer, Quiz, Frage, 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 

für Benutzer, den Sie können wählen, radio_button_tag verwenden, hier ist link to learn

Verwandte Themen