作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 rails 应用程序网站中,访问者可以注册并创建内容。它使用带有用户模型的设计并且一切正常。
现在我想使用 rails_admin 来管理网站资源和用户等,只有具有管理权限的人才能访问它。
我应该为管理面板访问创建一个单独的 AdminUser 模型还是使用具有管理员角色的 User 模型,并使用一些授权库来管理访问。
如果我只使用一个模型,那么我希望用户在登录后被重定向到管理面板,如果用户是管理员,如果不是,那么我希望用户被重定向到他们的个人资料。以及哪个授权库 cancan 或 pundit 将是
更适合我的情况。
谢谢!
最佳答案
好问题。我在我的项目中使用 Rails Admin 和 Pundit。
我更喜欢将 Admin 模型与 User 模型分开。
一个原因是我喜欢能够从 Rails 管理员“成为用户”,以便在他们遇到问题时能够帮助他们。当您拥有单独的 User 和 Admin 模型时,它更容易做到。
Admin 模型可以非常简单。生成它rails generate devise Admin
然后在您的 config/initializers/rails_admin.rb
添加
config.authenticate_with do
warden.authenticate! :scope => :admin
end
config.current_user_method(&:current_admin)
def after_sign_in_path_for(resource)
if resource.class == Administrator
rails_admin_path
else
# Change profile_path to where you want regular users to go
stored_location_for(resource) || profile_path
end
end
config/initializers/devise.rb
中设置此配置
config.sign_out_all_scopes = false
关于ruby-on-rails - Rails_admin : Should I have admin_user or user with admin role to manage users and admin panel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27102718/
我是一名优秀的程序员,十分优秀!