Ruby on rails Rails 3:关于数组的问题

Ruby on rails Rails 3:关于数组的问题,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我有一个问题: @st = exam.students.find(:all) @st.each do |student| 返回一个包含所有学生的数组,但: exam.students.each do |student| 给我一个数组,每个学生4次 这是一张照片 有人对此有想法吗 更新: 这是我的考试模式: set_table_name "exam" set_primary_key "ID_Exam" belongs_to :questionnaire, :foreign_key =>

我有一个问题:

@st = exam.students.find(:all)
@st.each do |student|
返回一个包含所有学生的数组,但:

exam.students.each do |student|
给我一个数组,每个学生4次

这是一张照片

有人对此有想法吗

更新:

这是我的考试模式:

set_table_name "exam"
set_primary_key "ID_Exam"

belongs_to :questionnaire, :foreign_key => "ID_Questionnaire"

has_many :responses, :foreign_key => "ID_Exam"
has_many :students, :through => :responses, :foreign_key => "ID_Exam", :group => "response.ID_Student" 

belongs_to :professor, :foreign_key => "ID_Professor"

has_many :student_exam_times
has_many :exam_halted_students
has_many :exam_paused_students
has_many :answered_questions
这是我的学生模型:

set_table_name "student"
set_primary_key "ID_Student"

has_one :user, :foreign_key => "ID_User"

has_many :group_student, :foreign_key => "ID_Student", :group => "group_student.ID_Group"
has_many :groups, :through => :group_student, :foreign_key => "ID_Group"

has_many :responses, :foreign_key => "ID_Student"
has_many :exams, :through => :responses, :foreign_key => "ID_Exam", :group => "exam.ID_Exam"

has_many :student_exam_times
has_many :exam_halted_students
has_many :exam_paused_students
has_many :marked_questions
has_many :answered_questions

has_many :messages, :order => "viewed ASC, send_at DESC"
更新2:

这是我的街区:

    students_exam = exam.students.find(:all)
    students_exam.each do |student|
      cont=StudentExamTime.find(:first,:conditions => {:student_id => student.id, :exam_id => params[:exam_id].to_i })
      bd_time=0
      if cont==nil
        cont=StudentExamTime.new
      else
        bd_time=cont.time
      end
      cont.student_id=student.id
      cont.exam_id=params[:exam_id].to_i
      cont.time=bd_time + params[:time].to_i
      cont.save
    end

你能在你的考试模型中公布这些关系吗


我最初的感觉是,考试和学生之间的关系比典型的关系更复杂,可以从“独特”的声明中获益。

看起来像是
考试。学生将返回每个学生与相关的考试(甚至是副本)

exam.students.find(:all)
将返回唯一学生的列表


您的模型关系和表设置是什么样子的?

我怀疑您的块在其中

exam.students.each do |student|

正在返回一个由4名学生组成的数组。你也能发布那个块吗。

添加
:uniq=>true


在你的考试模式中

这很奇怪,
考试.学生.计数
说什么?嗨,谢谢你的回答。exam.students.count返回exam.students.find(:all)嗨,你能在考试模型中发布
有多少关联吗?并使用mysql管理控制台检查您的数据库表。谢谢,它工作正常!你有没有解释为什么whitot“:uniq=>true”exam.students返回每个学生4次?uniq所做的是向select查询添加distinct。基于联接的查询不仅返回uniq行,而且返回它将匹配您的条件的所有行。
has_many :students, :through => :responses, :foreign_key => "ID_Exam", :group => "response.ID_Student"