我有书店(电子商务(的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 的文件夹,一旦您拥有上面的代码,您就可以根据需要向方法添加功能。