如何在Rails中建立后台管理页面

建立Controller

相信看这篇文章的朋友,应该都知道,Controller相关的文件都放在了 %Rails_Root%/app/controllers/ 目录下,为了和普通的Controller区分,我们在 %Rails_Root%/app/controllers/ 下新建一个目录 admin ,用于专门存放后台管理页面相关的Controller。

建立基本的Controller

也行大家都看过普通的Controller类的实现,都需要继承 ApplicationController ,把Controller的基本功能都继承下来。为了让后台管理页面使用不同的布局文件,其实我们只需要在Controller类定义中,调用一下 layout 方法即可。Rails中一个重要原则就是DRY。所以,为了减少代码重复,不在每一个后台管理相关的Controller中重复调用layout方法,我们建立一个后台的基础类。代码如下:

# %Rails_Root%/app/controllers/admin/base_controller.rb

class Admin::BaseController < ApplicationController

layout 'admin/application'

end

这里需要特别说明一下的是,为了防止和其他普通的Controller重名,也为了便于识别和管理,我们将后台管理相关的Controller都放到了 Admin 命名空间里。

建立登录Controller

建立完基础的Controller后,我们再来建立一个和登录相关的Controller。代码如下:

# %Rails_Root%/app/controllers/admin/sessions_controller.rb

class Admin::SessionsController < Admin::BaseController

# 登录

def new

end

end

配置Routes

添加完上面的Controller后,启动服务器,打开

Password : password

现在,虽然有了后台管理页面,但是我们需要管理的各种东西都没有。所以,这个必须得加进来。执行命令如下:

rails generate active_admin:resource [MyModelName]

这条命令会在 %Rails_Root%/app/admin 目录下生成 my_model_names.rb ,用于配置资源信息。这时,刷新一下浏览器,顶部菜单栏是不是多了个选项?

这样搞,实在是太爽太方便了!Rails真实太TM好玩了:怎一个爽字了得啊?!

自我吐槽

有两个地方需要特别声明一下:

代码段的第一行为文件路由;

有些地方需要建立一些文件夹,请各位看文章时候注意。

特别感谢

这篇文章,部分内容参考了active_admin的官方文档。特别感谢!