我正在尝试创建一个小应用程序,用户可以在其中注册,登录,并能够查看和交互问题以用于教育目的。
我可以想象所有内容,但我无法将其转换为实际代码。
我知道问题模型会有
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个选项的数组,并能够将其标记为正确?除此之外,我想在每次加载页面时随机播放或随机化答案选项。
任何帮助或指导都会有所帮助。迈克尔哈特尔的教程很棒,但我不确定我是否遗漏了它的东西或者没有点击的东西。
答案 0 :(得分:1)
如果答案的数量始终为5或更少,那么使用带有5个文本字段的问题模型的答案并没有错。您也可以默认第一个答案是正确的答案,并在视图中显示问题和答案随机播放答案。
rails g model Question title:text correct_answer:text answer_1:text answer_2:text ...
您刚刚开始使用问题,答案和嵌套表单的单独模型,不要太烦心。保持简单。
答案 1 :(得分: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
样本模型关系,共有4个模型,User,Quiz,Question,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
供用户选择,您可以使用radio_button_tag,这里是link to learn