自定义 Rails 的 Scaffold 模板提高开发效率

自定义 Rails 的 Scaffold 模板提高开发效率 - 李华顺

 


自定义 Rails 的 Scaffold 模板提高开发效率

 

2011-01-06

| Comments

 

 

Rails Scaffold 应该是每个 Rails 开发者最早接触的东西。它可以帮助我们快速生成对应的 Model Controller Views Routes 等东西。

但这玩意并不是那么好,默认的模板太过简单,如果对它稍作一些该进,就会省区很多麻烦。

例如下面这些情况:

  1. 需要生成后台目录下面的 Controllers 就不给力了,虽然可以用 rails g controller admin/posts 来生成,但会出来一些多余的命名空间;
  2. 我需要它直接就是中文的,免得反复修改;
  3. 模板生成的 HTML 结构太过简单,无法满足实际需求,每次都得修改好多处;
  4. REST 的 xml 格式经常都用不上,把它去掉或者改成 json 或许会更好。
  5. 列表页面改用 wice_grid 来代替
  6. simple_form 或者 formtastic 来代替默认的表单

终于我忍不住了,这两天查了查资料,顺便研究了一下 Rails 源代码关于 Generator 的部分,原来 Rails 3 可以直接在 lib 文件夹里面创建自己的模板。

ERB 的模板

lib/templates/erb/scaffold/  里面放自定义模版,参考Rails源代码的 那几个文件,把他们下载回来,放到项目 lib/templates/erb/scaffold/ 里面,就可以定制了. 

Controller 模板

这个要放在 lib/templates/rails/scaffold_controller/controller.rb 里面, 参考文件

可以看一下我定制的模板

我这个用 wice_grid 和 simple_form 代替默认的表格和表单,views 新增一个 _base.html.erb 用于小栏目通用,并且一个大的改进是针对生成后台的情况做了修正。

你可以 rails g scaffold Post title:string body:text user_id:integer 生成前台代码,然后再用 rails g scaffold_controller admin/post title:string body:text user_id:integer 生成后台的 Controller 和 Views 并且互不影响,生成出来的代码不用修改就可使用。

 

posted on 2012-03-14 10:29  lexus 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/03/14/2395491.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值