我有书店(电子商务)的Rails应用程序。我有两个用户模型一个用于管理员,一个用户用户。我想显示管理员可以通过管理面板查看的所有用户,还希望看到客户显示页面。我已经为这两种类型的用户使用了设计。我遇到问题,因为设计生成所有注册并自动登录逻辑然后我如何将其重定向到我的应用程序视图中不在root中的某些位置。
答案 0 :(得分:1)
Manohar我认为创建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
要设置修改或扩展控制器的功能,只需在控制器中创建一个设备目录,并将所需的控制器文件放在设计中。
这是我的一个应用程序的代码示例:
# registrations_controller.rb
class MyDevise::RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
end
def update
super
end
end
我刚刚在控制器的文件夹中创建了一个名为my_devise的文件夹,一旦你有了上面的代码,就可以根据需要为这些方法添加功能。