说我有两个数据库:一个是学生,一个是课程.我想能够向特定学生添加课程,并且还可以将学生添加到特定课程.我假设我需要在这里使用连接表,但是我有点迷失在如何使用它们.我最终希望能够做一些像:
@class.students.find(@student_id)
这会告诉我学生是否在课堂上.我知道班级和学生之间的关系是“has_many”,反之亦然.在迁移文件中做“t.references:学生”是否完成了?我尝试将该行添加到我的迁移文件,然后尝试使用上面的语句找到一些东西,并给我一个错误.我是新来的RoR,所以我甚至不知道最好的方式来实现这一点.任何帮助是赞赏!
解决方法
是的,这是一个多对多的关系(类有很多学生,学生有很多班级).为此,您将使用has_many:通过关系.看看
ActiveRecord::Associations
的文档(“Association Join Models”的Ctrl-F)).
在迁移中,t.references:学生是如何指定belongs_to关系的,因为它只是添加一个student_id列(只能容纳一个id,即一个学生).然而,连接模型将有两列:student_id和class_id. (顺便说一下,在Ruby中调用一个模型’Class’是要麻烦的,我可以建议’课程’吗?)