如何从模特中拯救学生?

时间:2017-07-06 00:40:05

标签: ruby-on-rails

我有两个模型,一个叫做雇主,另一个叫做学生。雇主可以查看学生档案。我怎样才能让雇主保存他们喜欢的学生档案?

我的意思是,当雇主查看学生资料并且他们喜欢时,他们必须能够点击“保存”,并且该用户资料的链接将被保存并显示在雇主资料中。因此,当雇主进入他自己的个人资料页面时,会有一个名为“已保存的学生”的部分,并且会有学生档案的链接。

我想我会在雇主模型中添加一个名为“saved_profiles”的数组,然后在学生档案中添加一个“保存”按钮。当雇主点击它时,他们正在查看的网址会被添加到saved_profiles数组中。通过网址,我的意思是"www.mywebsite.com/students/jake-madison"。我不完全确定如何实现这一点,任何有关如何实现这一点的帮助将不胜感激。

1 个答案:

答案 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