【问题标题】:Rails, two dimensional table, pivot, nested hash loopsRails、二维表、数据透视表、嵌套哈希循环
【发布时间】:2010-11-17 17:18:30
【问题描述】:

我正在构建成绩册报告 - 一个二维表,显示水平方向的课程名称和垂直方向的学生列表。

Student Name | LessonID x | LessonID x | LessonID x          
Joe                 95%        95%
Mary                80%        80% 
Sam                 80%                    80%

我的数据位于包含以下字段的表中:

student_id, lesson_id, grade_in_pct, grade_in_pts, grade_high, grade_low, grade_median

学生和课程的总数不固定。

我考虑过使用 ruport/acts_as_reportable 或 mysql 数据透视程序,但是看起来数据透视只给了我一个维度。所以这是行不通的,因为在我看来,我想添加鼠标悬停功能和条件格式以显示每个年级的更多信息。

所以我认为我唯一的选择是生成一个嵌套哈希,然后在视图中循环遍历它。你怎么认为?有人可以建议一种构建嵌套哈希的方法吗?遍历 250 行(约 50 名学生,每人 5 节课)是否会占用过多的处理器?

我被困住了。请帮忙。谢谢!

【问题讨论】:

    标签: ruby-on-rails arrays hash pivot ruport


    【解决方案1】:

    我会这样做:

    MODELS:
    
    Student Model:
      has_many: Grades
      has_and_belongs_to_many: Lessons
    
    Lesson Model:
      has_many: Grades
      has_and_belongs_to_many: Students
    
    Grade Model:
      belongs_to: Student, Lesson
    
    CONTROLLER:
    
    @data = Student.all
    @lessons = Lesson.all
    
    VIEW:
    
    header_row
    
    @data.each do |student|
      @lessons.each do |lesson|
        student.grades.find_by_lesson(lesson).some_data
    

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2014-10-17
      相关资源
      最近更新 更多