我有两个表:workers_table和admins_table。
我有两个控制器,我使用devise
(sign_in,sign_up ......)。
我用:
before_filter :authenticate_user!
在工人和管理员的控制者中。
假设我收到了登录用户的电子邮件:
@email = current_user.email
我想查看找到@email的位置:
如果在workers表中找到它,那么将他重定向到worker的index.html.erb(并且他无法进入管理员的index.html.erb)。
如果在admins表中找到它,那么将他重定向到admin的index.html.erb(并且他无法进入工作人员的index.html.erb)。
我知道如何检查用户是否属于workers_table或admins_table。
但是我应该在哪里检查用户属于哪个表?我应该定义另一个控制器吗?
请指导我。
答案 0 :(得分:1)
application_controller.rb是定义authenticate_user功能的好地方
另一个地方可能是sessions_controller.rb(如果你有的话)
至少你可以有一个ensure_admin方法让你的admins_controller添加到before_filter,如果它们不是admine,你可以redirect_to workers #index
我是rails的新手,所以我不确定传统的方法是做什么的,但上面是我可能会这样做的。