如何在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的官方文档。特别感谢!