Sie sagen, dass ein Schienen-Paradigma ist, sich nicht zu wiederholen, oder "DRY". Also arbeite ich an dieser Quiz-App, und jetzt, wo ich langsam verstanden habe, wie MVC etwas funktioniert und wie alles zusammenkommt, möchte ich besseren Code schreiben. Also lassen Sie sich dieses Beispiel nehmen, die ich habe früher von meinem Schema:Was ist eine effizientere Art, dieses Rails-Quizmodell zu strukturieren?
create_table "posts", force: :cascade do |t|
t.text "title"
t.text "text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "user_id"
t.text "answer_choice"
t.text "answer_choice_2"
t.text "answer_choice_3"
t.text "answer_choice_4"
t.text "answer_choice_5"
t.text "correct_answer_choice"
t.string "slug"
t.index ["slug"], name: "index_posts_on_slug", unique: true
end
Wie Sie sehen können, answer_choice, dann Zugabe von _2, _3, _4, _5 und correct_answer_choice scheint sehr hässlich und ineffizient zu mir. Was, wenn ich einen Beitrag hinzufügen möchte, der nur zwei Antwortmöglichkeiten hat? Oder drei? Vielleicht mehr?
Was wäre ein besserer Weg dies zu tun, so dass es anpassungsfähiger und flexibler ist?
Wenn dieser Code funktioniert, könnte diese Frage besser auf CodeReviewSE gestellt werden, vorausgesetzt, es erfüllt die restlichen Kriterien für das Stellen einer Frage (mit denen ich nicht vertraut bin). – Lexi
Setzen Sie alle Antworten in eine 'JSON'-Spalte mit dem Namen' Antworten' –
@NickM, aber ich verwende JSON nicht in meiner Rails-App? – mazing