1

我有一个有多个用户的应用程序。每个用户作为一个理论角色(用户、客户等)。我为每种用户类型设计了一个视图/控制器。

我希望能够登录每种类型的用户做一个不同的根 url 并将它们锁定到它。

最初我打算在 Devise 中为用户添加一个名为角色的列,这样我就可以区分用户。我遇到的问题是如何在 routes.rb 中说 if current_user.role == "client" root :to => 'controller#index'

一旦他们登录到该页面,我还想让他们无法访问我的任何其他路径,即:domain.com/calls domain.com/units

我一直在研究 cancan 与 Devise 一起运行,但我不确定这是否是答案。

4

1 回答 1

0

与其在路由中处理,为什么不在ApplicationController中处理呢?

#application_controller.rb
before_filter :direct_to

def direct_to
  if current_user.role == "client"
    redirect_to client_controller_path
  # etc
end
于 2012-06-15T15:13:41.530 回答