我正在尝试构建一个rails测验应用程序,其中会有一个问题,并且该特定问题将有4个选项。以下是我对该模型的处理方法:
rails g Question description:text choice:array
我无法入门。这是正确的方法吗?如果不是我应该怎么做呢?
然后会有类别模型,它将与问题模型具有has_many关联。
rails g Category name:string
我将在问题表中存储类别外键,以显示此问题来自此特定类别。
我很擅长设计合适的问题模型。非常感谢帮助
答案 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
以获得该问题的答案