允许管理员和用户使用相同的表单登录(rails)

时间:2015-08-04 12:45:39

标签: ruby-on-rails ruby-on-rails-4

我创建了2个表,一个用于用户,一个用于管理员。

我创建了2个表,因为它们都收集不同的信息,但我希望能够通过同一表单使用管理员和用户表中的电子邮件地址和密码进行登录。

这可能吗?我环顾四周,人们似乎创建了1个用户表并添加了一个管理员布尔值,但我想避免这种情况,如果我不需要,我也不想收集不必要的数据。

如何最好地解决这个问题的任何帮助和帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

如果您从头开始实现某些功能,那么只需编码即可。我认为这种方法有一些固有的缺陷,我会避免它。

如果你想在模型方面有一些隔离,我建议你使用STI。这样就有一些共享的行为/属性,区别可以单独编码,所以你可以得到保护。

如果你有很多不同的属性,我建议将它们与你的用户/管理员分开,并创建一个“admin_profile”模型,即belongs_to:admin和一个“user_profile”,即belongs_to:user。

要使编码“透明”,您可以在管理模型类中创建访问者,以无缝地获取/设置配置文件属性。假设您在admin_profile模型上有一个is_cool属性,但您想以

的形式访问它
heightForRowAtIndexPath

您可以拥有admin.rb模型

imadmin.is_cool

请注意,如果没有与admin / user关联的配置文件,则has_one关系可能会返回nil。