我有一个带有简单has_many的Student和Record表:通过关联:
class Student < ActiveRecord::Base
has_many :records
end
我需要获取MBA分校的所有学生详细信息。我需要将结果分配给变量@students,并且需要使用
访问学生的记录@students.each do |student|
students.records.each do |record|
///
end
end
那就是我需要将has_many相关的类数据也访问到一个对象中。如何为此编写查询。我是铁路的新手。请帮助。谢谢提前
答案 0 :(得分:1)
试试这个,
@student = Student.where("student.course = ?", "MBA").includes(:records)
然后在实例变量上执行每个操作。这将使您免于N + 1问题
答案 1 :(得分:0)
看起来你有一个has_many关系而不是has_many:through。你看过导轨指南了吗?他们在那里描述了如何从数据库中获取数据。 http://guides.rubyonrails.org/active_record_basics.html#read 以下是has_many关系的更详细参考:http://guides.rubyonrails.org/association_basics.html#has-many-association-reference
确保您在循环中访问学生而不是学生 s 。
@students.each do |student|
student.records.each do |record|
///
end
end
MBA分支来自哪里?那是另一张桌子吗?
你最终可能会得到像@students = Student.where(branch_id: 1)
这样的东西。
ID 1只是虚构的,但我猜你在另一张桌子上有你的分支。