如何在新表单上创建关联对象与对象的输入?

时间:2012-11-18 16:27:48

标签: ruby-on-rails ruby-on-rails-3

我不确定这个主题是否具有我想要的正确含义,但我不知道如何解释。我正在建立在线考试应用程序。为了便于解释问题,我将重点放在6个表中:

  1. 课程: has_many 主题
  2. 主题: belongs_to 课程
  3. 问题: belongs_to 主题, has_many general_exams,至::general_questions
  4. GeneralExams: has_many 问题, through: general_questions, belongs_to 用户, belongs_to 当然, has_many 考试
  5. GeneralQuestions: belongs_to 问题, belongs_to general_exam

  6. 考试: belongs_to 一般考试, belongs_to 用户

  7. 这是表GeneralExam中的列:

    name,description,semester,number_question,duration,used, user_id, course_id
    

    我现在想做的是创建一般考试,当然可以针对每个主题提出一些问题。例如,我有课程名为“数据库”有3个主题:A,B,C。现在我想为“数据库”课程创建一般考试。我想在创建普通考试时具体说明:

    • 主题A的问题
    • 主题B的问题
    • 主题C的问题

    这些问题我从这些主题中随机出现。我已经构建了一个用于创建常规考试的表单,但我不知道如何在表单上获得课程主题,并为每个主题创建输入数字问题的字段。那么是否有一些方法可以列出关于新形式的一般考试的主题,并且每个主题都有一个字段来输入数字问题将随机获得该主题?或者我需要创建一个新表来存储该信息?

2 个答案:

答案 0 :(得分:1)

这就是我要做的......

数据库应该是它的“灵活性”。 为此,所有信息存储在不同的表中.. 然后为了反复数据的速度..建立一些关系表来显示信息.. (取决于将有多少人使用您的系统)

所以....自上而下....

教师表(一位老师可以教许多课程)..每件事都从这里开始) - > 课程表(这是所有其他人的基础) -----------------下面可能开始交叉审判.. - > 主题表 ---> g-exam表大问题表可能在同一级别 - > g-question表应该在底层(可以参考g-exam和Big-Q)

(不需要保存教师信息或主题信息,因为它是两级的... 但您仍然可以存储这些信息以便快速检索数据。 但要记住 .. 如果您需要在信息存储后更改信息... 简单就是更好......

答案 1 :(得分:0)

我只是回答我的回答...... 我发现一个错误,我说.. 我应该说:你不需要在g-question表中保存教师或主题信息。 g-question表仅保存问题密钥和g-exam-key 和问题表和g-exam表保存主题密钥 .....和referance回到顶级..

并创建一个快速访问表,以便快速访问,可以每天更新 (例如:显示教师姓名,名字等等,因为这些表格由“关键”而非名称

链接 抱歉没说错“