ruby-on-rails - Rails、二维表、pivot、嵌套散列循环

标签 ruby-on-rails arrays hash pivot ruport

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

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

学生总数和类(class)总数不固定。

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

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

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

最佳答案

这就是我将如何做到的:

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

关于ruby-on-rails - Rails、二维表、pivot、嵌套散列循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207217/

相关文章:

ruby-on-rails - Assets 管道中默认 require_tree 背后的原因是什么?

javascript - ruby on rails - 添加javascript

c++ - 打印数组显示符号而不是字符 C++

python - 可变的用户定义类型和集

ruby-on-rails - 是否有更好的 Ruby 或 Rails 习惯用法来检查嵌套哈希中是否存在值?

ruby-on-rails - Rails 3 + angularjs + 缩小在生产中不起作用 : Unknown provider: eProvider

ruby-on-rails - 使用 activemerchant 和 ipn 的 Paypal 快速结帐

c - 为什么指向数组的指针在作为参数传递给具有数组类型参数的函数之前需要转换?

C 程序在程序结束时返回随机字符? (最后一个功能)

java - 如何在java中使用md5计算哈希值