【问题标题】:How to create a separate admin interface for blogs in rails如何在 Rails 中为博客创建单独的管理界面
【发布时间】:2017-05-18 17:55:24
【问题描述】:
我需要为我的博客网站创建一些路由,以便普通用户只能阅读帖子和产品。而超级管理员创建管理员来审核帖子。我怎样才能在rails中实现这一点?
我想要
myapp.com/admin 带我进入管理员登录页面。
只有超级管理员可以管理版主。
到目前为止,我在“app/controller/admin/home_controller”中有一个控制器
它具有用于查看管理员的所有帖子和用户的索引操作。
【问题讨论】:
标签:
ruby-on-rails
devise
routes
rails-routing
user-roles
【解决方案1】:
尝试在您的操作之前添加一个前置过滤器,以便管理员每次尝试点击该网址时,他/她都应该被重定向到 admin_login_url
before_filter :check_role
private
def check_role
unless current_user.role=='super_admin'
redirect_to admin_login_url
end
end
【解决方案2】:
我将在阅读大量方法后分享我实际所做的事情,以防万一有人卡在我原来的位置。希望有所帮助:
- 在“app/controllers/”中创建一个新控制器。这个控制器只负责 GET 请求。
- 从 'app/controllers/' 中的控制器中删除 Create、Update、Delete 方法,因为这些方法只有管理员可以访问。
- 在“app/controllers/admin/”中创建一个新的 admin_controller.rb。在此处添加身份验证。
-
在同一目录中为每个模型创建新的控制器(从 AdminsController 继承)并将管理操作放在那里。
类 AdminPostsController