gpt4 book ai didi

ruby-on-rails - Devise 中的多个用户

转载 作者:行者123 更新时间:2023-12-04 05:38:48 24 4
gpt4 key购买 nike

整整两天后我还没有找到解决方案。

这是我的问题。

我创建了一个 Rails 应用程序并添加了 Devise。除了我有 3 个设备用户之外,一切都很好:UsersVendorsAdmin

我的问题是我试图为每个用户创建单独的登录页面。但是,当我生成设计 View 并在登录页面上工作时,它仅从 View /设计/ session /新页面中提取 HTML。因此,无论您访问 /admin/sign_up/vendor/sign_up 还是 /user/sign_up ,您都会从 获得完全相同的设计页面 View /设计/ session /新

如何拥有 3 个不同的devise/sessions/new View ?我希望 User 登录名和注册看起来与 VendorsAdmin 登录名不同。我有 3 个设备 Controller :Users_controller、Vendors_controller 和 Admins_controller

我真的很困惑。任何帮助将不胜感激。

干杯,

最佳答案

您可以为用户管理员供应商生成三种不同的设备模型、 View 和 Controller 。您还可以将设计助手添加到现有模型和 Controller 中。对于 View ,请确保使用 Devise 的角色范围 View 生成器:

`rails generate devise:views users` # change `users` to whichever role you are generating

然后,您可以使用其 devise_for 帮助程序将每个角色路由到 routes.rb 中自己的 signup,如下所示:

devise_scope :user do 
get 'users/login' to: 'users#sessions#new', as 'user_login'
end

devise_scope :admin do
get 'admins/login', to: 'admins#sessions#new', as 'admin_login'
end

devise_scope :vendor do
get 'vendors/login', to: 'vendors#sessions#new', as 'vendor_login'
end

但是:

这不是很干。我强烈建议重新考虑您的设计,并为具有 role 属性的 User 创建一个模型。尝试CanCan gem 。以下是 CanCan 的 wiki,介绍如何创建基于角色的授权:https://github.com/ryanb/cancan/wiki/Role-Based-Authorization

关于ruby-on-rails - Devise 中的多个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com