Powerful 的 Rails 速成後台 : RailsAdmin

标签: 無分類雜文 | 发表时间:2011-06-28 02:26 | 作者:xdite babaru
出处:http://blog.xdite.net

前幾個禮拜幫自己的書刻官網,那時候已經有點精神不濟了,實在相當懶得自己手刻 CRUD 後台 以及實作 Authentication。當下就決定使用硬幹法…(雖然我手刻一個 CRUD 不需要 5 分鐘,但是那天真的累了)。多硬幹?基本上在網站上面看到的 view 和 route 都是我徒手硬寫的,沒有任何 model ….

證明了人只要拋棄羞恥心,不只 PHP 可以寫得非常快,Rails 更可以寫的霹靂快?

後來一直想找個時間補個後台,但是想到 CRUD 就懶,畢竟我現在在公司已經連 CRUD 都不寫了,只負責研究底層和 cutting edge 的東西,和實作一些架構的 prototype。後來看到 RSS Feed 有一篇文章在介紹快速後台

文章主要提到了兩套快速後台 RailsAdminActiveAdmin。鑑於 ActiveAdmin 是新出的,而且精美異常…於是我就先嘗試了這一套。

螢幕快照 2011-06-28 上午1.51.30

Demo 網站可以看這裡

翻了一下文件大致上是寫 DSL 去把整個後台做出來,寫起來非常的舒服。

但是在設計一些 model 欄位時,覺得自己有 checkbox 之類的需求,ActiveAdmin 不太夠用。於是就回去翻了一下看起來比較醜的 RailsAdmin 有什麼 feature。不翻還好,翻了覺得自己完全不應該以貌取人,直接 easygit revert 剛剛的 commit,重弄整個後台。

螢幕快照 2011-06-28 上午2.06.42

完全不知道什麼時候 RailsAdmin 變得這麼強大了,DjangoAdmin 根本是被一炮擊沉。

Demo 網站可以看這裡

簡單的感想就是:從前在 Rails 2 時代,的每一套快速後台 plugin,都只有相當差強人意的水準。多數只是去撈 database schema,然後把所有欄位都拉出來修改。完全只是個 phpMyAdmin 等級的後台,醜到爆炸不說,使用者 authenticated system 也各自為政。用這些 plugin customized 出自己的後台,想都別想。

而現今的這一套 RailsAdmin 是 2010 Ruby Summer Code 的作品,想法和架構是從 MerbAdmin porting 過來的。由於 RailsAdmin 的時候已經是具有乾淨 API 的 Rails 3 時期,加上這一套的作者群裡面甚至有 Rails 架構師 Yehuda Katz 。架構實在漂亮的不得了。

這是我的後台操作介面。

螢幕快照 2011-06-28 上午2.20.14

而這是我為這個 model 寫的 DSL。

螢幕快照 2011-06-28 上午2.20.33

非常直觀簡潔,照著這樣的寫法,很快就可以做出一個精美的後台。

看上它的第一點原本是因為豐富的 field options。但後來開始越翻越深,才發現這套後台把 block + form builder 玩的出神入化。而另外更神奇的是,它還整合了常用的幾組 plugin:devise, paperclip, cancan。做到很多必須要自己刻的 feature。但在架構上又分離的很乾淨。

也實作了很多 model association 才會用的 user interface(has_many, has_one, belongs_to )。當然你也可以把 form 抽換成自己 form builder 和插入自己寫的 partial 達到整合的效果….不只如此,還可綁 CKEditor,犯規中的犯規。

文件寫的還只是這些 feature 的一小部分,如果你熟 Rails 的話,直接看 source code 還可以挖出更多的可能性。簡直威到不能再威。

開始認真考慮以後只要是後台都用 Rails Admin 去客製了 …XD

====

廣告:
書:第一次學 Rails 就上手 – 7 天之內學會 Rails(USD $9.99)
聚會:Rails Tuesday Rails 社群聚會 (免費)2011/06/28 這次換成行天宮捷運站不同的出口了,請注意喔!

相关 [powerful rails 速成] 推荐:

Powerful 的 Rails 速成後台 : RailsAdmin

- babaru - Blog.XDite.net
前幾個禮拜幫自己的書刻官網,那時候已經有點精神不濟了,實在相當懶得自己手刻 CRUD 後台 以及實作 Authentication. 當下就決定使用硬幹法…(雖然我手刻一個 CRUD 不需要 5 分鐘,但是那天真的累了). 基本上在網站上面看到的 view 和 route 都是我徒手硬寫的,沒有任何 model …..

安装rails(ruby on rails)

- - BlogJava_首页
  记得两年前使用ror做网站,自动生成功能记忆犹新,只是当时网络知识实在缺乏,体会不到其中的乐趣. 现在了解的很多了,书也有两本,一直想重新体验最新版做个网站. 安装这个过程实在有点坑爹,查找网上若干ror的书包括2012年版的书,按照上面的步骤都没法安装完成,搞得我一会在linux下试验,一会在windows下试验,都没成功,只好放下.

Ruby On Rails 4 hello world,Ruby On Rails上手

- - CSDN博客Web前端推荐文章
有机会再试一试Rails了,只是原来接触的是2,现在已然变成了4,似乎现在的安装比原来会快些. 似乎这就是当前的最新版本. 似乎这就是诸如Django、Rails这类对于轻量级网站的数据库要求. 其他可以看情况安装,如openSUSE. 可以直接用rails生成. 这样的话打开  http://localhost:3000 就可以看到,Rails的欢迎界面Welcome aboard,有点类似于Django-CMS的小马哥~~.

淺談 Rails 3.1 Asset Pipeline

- gnepud - Blog.XDite.net
前幾天,我新開了一個網站 Upgrade2Rails31. 專門放置我更新 Rails 3.1 的一些實戰心得文章. 在社群交流聚會中,我常發現人們對於 Rails 3.1 的 Asset Pipeline,還有它引進的一些新穎機制不是很瞭解. Asset Pipeline 是什麼. Asset Pipeline 對於提昇網站速度,架構上有什麼貢獻?.

Groupon收购Ruby on Rails开发公司Obtiva

- bill - cnBeta.COM
据国外媒体报道,团购网站Groupon当地时间周四宣布该公司已经收购了Ruby on Rails开发公司Obtiva. Ruby on Rails是一种可以使用户开发、部署和维护web应用程序变得更为简单的框架. Groupon发表博文称,Obtiva是芝加哥地区最大的Ruby on Rails开发公司.

推荐一些 Ruby on Rails 学习资料

- dylan - Reincarnation
开始之前应该看看 Ruby 官方网站 上的 About Ruby、Ruby in Twenty Minutes 和 Ruby From Other Languages 得到初步的印象和感性认识. 在页面底部可以选择语言查看中文版. 经验比较丰富的开发者可以通过 Ruby User’s Guide [注1] 快速入门 Ruby,之后应该准备一本 The Ruby Programming Language 作为日常参考.

Ruby社区应该去Rails化了

- - robbin的自言自语
从Linkedin和Iron.io抛弃ruby说起. 最近半年关于Ruby编程语言最负面的两条新闻莫过于2012年10月的报导: Linkedin从ruby迁移到node.js,30台服务器减到3台,以及2013年3月的报导: Iron.io从ruby迁移到Go,30台服务器减到2台. node.js和Go都是最近两年服务器端高并发编程的热门语言,Linkedin和Iron.io抛弃Ruby迁移之后,都获得10倍以上的系统性能提升,效果非常好.

Rails中如何避免N+1问题

- - CSDN博客数据库推荐文章
N+1问题是数据库访问中最常见的一个性能问题,首先介绍一下什么是N+1问题:. 举个例子,我们数据库中有两张表,一个是Customers,一个是Orders. Orders中含有一个外键customer_id,指向了Customers的主键id. 想要得到所有Customer以及其分别对应的Order,一种写法是.

如何提升 RailS 应用的性能?

- - ITeye资讯频道
「铁路很慢」,你也许听过这个笑话,那么我们的 Rails 框架呢. 如果说 Rails 慢,那么如何提升 Rails APP 的性能就成了开发者们最关注的问题. 也许你听说过很多提升 RoR APP 性能的方法,它们有难有易,我们需要在选择其中最能帮助开发者脱离性能困境的. 这里列举了几种不同的提升 Rails 应用性能的方法.

给力百货开发历程分享:选择 Django 还是 Rails?

- nowa - python.cn(jobs, news)
之前 Eric.Mao 使用过 Bottle 开发 义乌小商品搜索,这回他转使用 Rails 开发一个B2B商城,那么他对 Python 熟悉的情况下为什么要转呢. 给力百货(www.geilibuy.com)定位于日用小百货的量贩平台,依托义乌小百货集聚的货源及物流的优势,打造价格、物流的洼地. 和之前的义乌小额批发网是一脉相承的.