Rails find_by_email multiple tables



我正在使用Rails应用程序,并且有3种不同的用户类型。这些用户可能非常不同,因此我为每个用户创建了模型。现在,他们应该能够通过单个表单登录。因此,基本上,我想说诸如'find_by_email(" some_email")'之类的话,但要搜索所有三个表。但是,似乎Rails希望您使用特定模型来调用" Find_by",例如Admin.find_by()。有什么建议么?

尝试这样的东西,并假设电子邮件在所有表中都是唯一的

[Model1, Model2, Model3].each do |model|
  break if model.find_by_email("email@email.com").present?
end 

希望这是您开发的早期,但是当前的结构可能不是最好的路线。每个用户类型不共享多少个不同的列?您可能需要使用"用户角色"系统,并且仅是用户表上的额外列。

,您可以使用cancan之类的东西来管理这些角色以及它们可以访问的地方。

最新更新