如何通过Devise在rails应用程序中构建两个用户模型(一个用于公共,另一个用于管理)



我有书店(电子商务(的Rails应用程序。我有两个用户模型,一个用于管理员,一个用于客户。我想向所有用户显示管理员可以通过管理面板看到的,我也想看到客户显示页面。我已经为这两种类型的用户使用了设计。我遇到了问题,因为设计自动生成所有注册和登录逻辑,然后我如何将其重定向到我的应用程序视图中而不是在root中的某个位置。

马诺哈尔 我认为没有必要创建 2 个模型。您可以使用 Devise 生成用户模型,然后按以下方式进行迁移:

class AddAdminToUsers < ActiveRecord::Migration
   def change
      add_column :users, :admin, :boolean, default: false
   end
end

这基本上会创建一个标志,允许你做这样的事情:

if current_user.admin?
end

如果页面可能未设置current_user,则:

if current_user.try(:admin?)
end

现在要从 Devise 访问控制器,请访问以下链接:

https://github.com/plataformatec/devise/tree/master/app/controllers/devise

要设置修改或扩展控制器的功能,只需在控制器中创建一个设计目录,并将所需的控制器文件放置在 devise 中。

这是我的一个应用程序的代码示例:

# registrations_controller.rb
class MyDevise::RegistrationsController < Devise::RegistrationsController 
   def new
      super
   end
   def create
      super
   end
   def update
      super
   end
 end

我刚刚在我的控制器文件夹中创建了一个名为 my_devise 的文件夹,一旦您拥有上面的代码,您就可以根据需要向方法添加功能。

相关内容

  • 没有找到相关文章

最新更新