按用户所属的表重定向用户

时间:2012-12-29 01:44:28

标签: ruby-on-rails redirect

我有两个表: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。

但是我应该在哪里检查用户属于哪个表?我应该定义另一个控制器吗?

请指导我。

1 个答案:

答案 0 :(得分:1)

application_controller.rb是定义authenticate_user功能的好地方

另一个地方可能是sessions_controller.rb(如果你有的话)

至少你可以有一个ensure_admin方法让你的admins_controller添加到before_filter,如果它们不是admine,你可以redirect_to workers #index

我是rails的新手,所以我不确定传统的方法是做什么的,但上面是我可能会这样做的。