我有两个模型,一个叫做雇主,另一个叫做学生。雇主可以查看学生档案。我怎样才能让雇主保存他们喜欢的学生档案?
我的意思是,当雇主查看学生资料并且他们喜欢时,他们必须能够点击“保存”,并且该用户资料的链接将被保存并显示在雇主资料中。因此,当雇主进入他自己的个人资料页面时,会有一个名为“已保存的学生”的部分,并且会有学生档案的链接。
我想我会在雇主模型中添加一个名为“saved_profiles”的数组,然后在学生档案中添加一个“保存”按钮。当雇主点击它时,他们正在查看的网址会被添加到saved_profiles数组中。通过网址,我的意思是"www.mywebsite.com/students/jake-madison"
。我不完全确定如何实现这一点,任何有关如何实现这一点的帮助将不胜感激。
答案 0 :(得分:3)
“雇主”表格中的数组就是我们所说的“非规范化”策略。 “规范化”策略将涉及将该保存存储为连接表中的记录。非规范化解决方案快速简便 - 首先。它可能会导致后来的头痛。让我们来谈谈使用Rail的神奇has many through关联的规范化解决方案。
<强>轨强>
class Employer
has_many :employer_students
has_many :students, through: :employer_students
class Student
class EmployerStudent
belongs_to :student
belongs_to :employer
<强>数据库强>
table: students
columns: id, name
table: employers
columns: id, name
table: employer_students
columns: employer_id, student_id
当雇主“保存”学生的个人资料时,我们会在employer_students表中创建一条记录,将该雇主与该学生联系起来。然后,当我们想要看到雇主已经保存的学生时,我们会加入。
employer.students