我想检索所有一个表和所有连接记录。
我想从两个表中获得所有列
这在SQL中非常简单
EG
SELECT *
FROM students
JOIN teachers
ON students.id = teachers.student_id
我怎么能在铁轨上做同样的事情?
我尝试过变种
Student.includes(:teacher)
和
Student.joins(:teacher).includes(:teacher)
连接正在运行,但我无法访问Teacher表中的列
请注意,最终目标只是能够在控制器中创建实例变量,以便我可以访问视图中的学生和教师数据
Student.includes(:teacher)
将返回ActiveRecord::CollectionProxy
,这意味着如果在此集合中采取特定对象,它将是Student
类对象。
与从2个表中触发和返回数据的sql查询不同,它在rails中不起作用,只从students
列获取数据,这将关联teachers
表中的相关记录,因为它代表Student
模型。
您可以访问更多teachers
数据,如,
students = Student.includes(:teacher)
students.last.teacher.name
在上面,当您在对象上调用teacher
关联时,不会在数据库中触发新查询