rails中的多项选择测验应用

时间:2018-03-08 14:24:08

标签: ruby-on-rails

我正在尝试构建一个rails测验应用程序,其中会有一个问题,并且该特定问题将有4个选项。以下是我对该模型的处理方法:

rails g Question description:text choice:array

我无法入门。这是正确的方法吗?如果不是我应该怎么做呢?

然后会有类别模型,它将与问题模型具有has_many关联。

rails g Category name:string 

我将在问题表中存储类别外键,以显示此问题来自此特定类别。

我很擅长设计合适的问题模型。非常感谢帮助

1 个答案:

答案 0 :(得分:2)

你应该想到一个额外的答案模型。好的,我们走吧:

问题:

# == Schema Information
#
# Table name: questions
#
#  id               :integer          not null, primary key
#  question_text    :text
#  type             :string
#  created_at       :datetime         not null
#  updated_at       :datetime         not null
#
class Question < ActiveRecord::Base
  has_many :answer_options, dependent: :destroy # the questions choices
end

AnswerOption:

# == Schema Information
#
# Table name: answer_options
#
#  id             :integer          not null, primary key
#  answer_text    :text
#  question_id    :integer
#  created_at     :datetime         not null
#  updated_at     :datetime         not null
#
class AnswerOption < ActiveRecord::Base
   belongs_to :question
   validates :answer_text, presence: true, allow_blank: false
end

如何存储用户答案?在另一个模型中,我们称之为question_answer。 - &GT;用户的答案。用户选择了一些answer_options - &gt;我们将这些ID存储在序列化的answer_option_ids属性中。

# == Schema Information
#
# Table name: question_answers
#
#  id                        :integer          not null, primary key
#  question_id               :integer
#  answer_option_ids         :text
#  user_id                   :integer
#

class QuestionAnswer < ActiveRecord::Base
  serialize :answer_option_ids
  belongs_to :question
  belongs_to :user
  validates_presence_of :question_id, :user_id
end

在你的问题中.rb添加has_many :question_answers, dependent: :destroy以获得该问题的答案