如何在 Rails 中为博客创建单独的管理界面

Posted

技术标签:

【中文标题】如何在 Rails 中为博客创建单独的管理界面【英文标题】:How to create a separate admin interface for blogs in rails 【发布时间】:2017-05-18 17:55:24 【问题描述】:

我需要为我的博客网站创建一些路由,以便普通用户只能阅读帖子和产品。而超级管理员创建管理员来审核帖子。我怎样才能在rails中实现这一点? 我想要 myapp.com/admin 带我进入管理员登录页面。 只有超级管理员可以管理版主。

到目前为止,我在“app/controller/admin/home_controller”中有一个控制器 它具有用于查看管理员的所有帖子和用户的索引操作。

【问题讨论】:

我搜索的越多,我就越困惑。 从了解授权和身份验证的区别开始。 【参考方案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

【讨论】:

以上是关于如何在 Rails 中为博客创建单独的管理界面的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ruby on Rails 4 中为 post 生成唯一的随机 id?

如何在 Rails 4.2 中为多对多关联创建表单

如何在 Rails 中为带有单选按钮的帖子分配一个类别?

如何在单独的自定义视图中为按钮创建操作

如何在 Rails 应用程序中为我的用户添加角色?

如何在 Rails 3 中为社交网络应用程序实现友谊模型?