目前,在我的应用程序中,我有以下模型:
has_many :training_timesbelongs_to :dojo我想要一个学生有很多训练时间,训练时间有很多学生。
目前,在我的学生控制器中,我有:
def show
@student = Student.includes(:senseis).find(params[:id])
@times = TrainingTime.includes(:dojo).order("time ASC")
@times = sort_by_place_and_day(@times)
end然后,我将其表述为:

如果培训时间与当前学生相关联,则我希望将其突出显示为红色,如下所示:
<% if time.students.exists?(@student) %>
<td class="orange">...</td>
<% else %
<td class="normal">...</td>
<% end % >所以我的问题是:每次都会再次查询数据库吗?我如何关联/包括这两个模型,以使它不?
发布于 2013-02-18 09:58:49
对我来说,解决这个问题的最有效的方法是通过js。使用erb/haml显示所有可用的培训时间,然后添加一个js代码,该代码将遍历与学生相关的每个培训时间。js代码只会更改td的类,这正是您想要的。因此,最多只能得到3个查询,学生,所有的培训时间和学生的培训时间。
https://stackoverflow.com/questions/14932627
复制相似问题