留在这里的学生-想知道您是否可以看一下这段代码,并给我一些指导,为什么不显示其余2门课程的平均水平?该代码正在运行-每个控制台。
是否弹出任何东西?
请让我知道。
欢迎您!<% if current_student.courses.present? %>
<h5>Here are your courses:</h5>
<table>
<tbody>
<tr>
<td width="150"><h5>Course Name</h5></td>
<td width="150"><h5>Course Average</h5></td>
<td width="300"><h5>Course Actions</h5></td>
</tr>
<tr>
<% current_student.courses.select(:course_name, :id).where(student_id: current_student.id).each do |course| %>
<td width="150"><h6> <%= link_to "#{course.course_name}", student_path(current_student, course) %></h6></td>
<td width="150"><h6> <%= "#{Assignment.where(course_id: course.id, student_id: current_student.id).average(:assignment_grade)}" %></h6></td>
<td width="150"><h6> <%= link_to "See assignments for this course." %> </h6></td>
</tr>
<% end %>
</tbody>
</table>
<% else %>
<h5>You currently do not have any Courses.</h5>
<% end %>
更新:谢谢您的反馈,我能够显示一些数字,但是平均值是总作业数。似乎没有将作业的课程ID限制为课程ID?有什么想法吗?
<% current_student.courses.select(:course_name).each do |course| %>
<tr>
<td width="150"><h6> <%= link_to "#{course.course_name}", student_path(current_student, course) %></h6></td>
<td width="150"><h6> <%= "#{Assignment.joins(:course).where(student_id: current_student, course_id: course.id).average(:assignment_grade)}" %></h6></td>
<td width="150"><h6> <%= "#{Assignment.joins(:course).where(student_id: current_student, course_id: 1).count}" %></h6></td>
<td width="150"><h6> <%= link_to "See assignments for this course." %> </h6></td>
</tr>
<% end %>
当然,如果我对课程ID进行硬编码,则会显示平均值,但是我需要为每个操作输入课程编号... enter image description here
答案 0 :(得分:0)
如果Assignment.where(course_id: course.id, student_id: current_student.id)
不返回任何行,则average
为nil
。插入为字符串的Nil可为您提供空字符串。
更新:
这里是UPDATE的部分正确版本:
<% current_student.courses.each do |course| %>
<tr>
<td width="150"><h6><%= link_to "#{course.course_name}", student_path(current_student.id, course.id) %></h6></td>
<td width="150"><h6><%= Assignment.where(student_id: current_student.id, course_id: course.id).average(:assignment_grade) %></h6></td>
<td width="150"><h6><%= link_to "See assignments for this course." %></h6></td>
</tr>
<% end %>