Rails:为两种用户类型设置多态关联

时间:2018-09-26 12:37:37

标签: ruby-on-rails authentication ruby-on-rails-5 polymorphic-associations user-roles

我开始在Rails中为自己的论文编写一个类似于linkedin的网站,以使成员能够发布工作机会(雇主),而其他成员(雇员)对此做出回应。

我一直在努力围绕数据模型和关联-因为我不想为雇主和Yees提供两个身份验证渠道-我想在一个表中保留电子邮件,昵称和密码(模型)并将其用于登录,然后从那里转到雇主和雇员特定的数据。

我正在阅读有关STI的信息,但我发现Yer的数据与Yee的数据完全不同,并且Users表中会有很多空值,这并不是我所认为的最佳选择。

然后我偶然发现了多态关联,但是我真的不知道如何设置它们。 我在想这样的事情:

User < ApplicationRecord
  has_one :employer, polymorphic: true
  has_one :employee, polymorphic: true
end

Employee < ApplicationRecord
end

Employer < ApplicationRecord
end

我不知所措,因为我不知道什么是实现此目标的最佳方法,任何技巧都值得赞赏, 欢呼

1 个答案:

答案 0 :(得分:0)

您无需在此处使用多态关联。

User < ApplicationRecord
  has_one :employer
  has_one :employee

  def employer?
    employer.present?
  end

  def employee?
    employee.present?
  end
end

不确定这是否是您的最佳解决方案。