Ruby on rails 如何建模和集成rails多选项测验?
我正在尝试制作一个小应用程序,用户可以在其中注册、登录,并能够出于教育目的查看和交互问题 我可以将一切可视化,但我很难将其转换为实际代码 我知道一个问题模型会有Ruby on rails 如何建模和集成rails多选项测验?,ruby-on-rails,forms,model-view-controller,database-design,Ruby On Rails,Forms,Model View Controller,Database Design,我正在尝试制作一个小应用程序,用户可以在其中注册、登录,并能够出于教育目的查看和交互问题 我可以将一切可视化,但我很难将其转换为实际代码 我知道一个问题模型会有 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
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
当然,我知道强参数也必须接受这些属性(参数?)
如何创建一个模型,其中new-question.html.erb表单将传递5个选项的数组,并能够将其中一个选项标记为正确?最重要的是,我想在每一个页面上随机选择答案
任何帮助或指导都是有帮助的。MichaelHartl的教程很棒,但我不确定我是否遗漏了一些东西,或者东西没有点击 如果答案的数量始终为5或更少,那么使用带有5个文本字段的问题模型就没有问题。您也可以默认第一个答案是正确的,并在显示问题和答案的视图中将答案洗牌
rails g model Question title:text correct_answer:text answer_1:text answer_2:text ...
您才刚刚开始,所以不要为问题、答案和嵌套形式的单独模型操心太多。保持简单。如果答案的数量总是5个或更少,那么使用带有5个文本字段的问题模型就没有问题。您也可以默认第一个答案是正确的,并在显示问题和答案的视图中将答案洗牌
rails g model Question title:text correct_answer:text answer_1:text answer_2:text ...
您才刚刚开始,所以不要为问题、答案和嵌套形式的单独模型操心太多。保持简单。数据库模式示例
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个模型,用户、测验、问题、用户测验
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
课堂测验:用户
结束
类用户:用户
结束
类问题
为了让用户选择,您可以使用单选按钮标记,下面是数据库模式的示例
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个模型,用户、测验、问题、用户测验
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
课堂测验:用户
结束
类用户:用户
结束
类问题
让用户选择您可以使用单选按钮标签,这里是默认第一个答案是什么意思?理想情况下,用户可以单击“显示答案”按钮,在该按钮上可以显示正确的答案,这将如何考虑?谢谢。我的意思是假设正确答案是第一个,所以你不需要额外的字段来记录哪个答案是正确的。我更新了答案让它更清楚。你说默认第一个答案是什么意思?理想情况下,用户可以单击“显示答案”按钮,在该按钮上可以显示正确的答案,这将如何考虑?谢谢。我的意思是假设正确答案是第一个,所以你不需要额外的字段来记录哪个答案是正确的。我更新了答案,让它更清楚。