列出一些比较有特色的部分,大家一起学习,水平有限见谅。
--用户部分-devise 方案 devise 的代码比较难看懂,大牛写的,一堆 generator,我讨厌 generator. 那个 build_resouce,外加一堆 option,头本来就比较晕了,这下更晕,太魔法了导致水平一般的看不懂,主要可能是自己比较懒以及水平有限,有利必有弊。 其实可以参考 devise 直接把 devise 弄成一个 mountable app ---devise 特色 devise 把用户登录过程抽象成了几个控制器和模型,我们这种菜鸟级的往往都是在默认产生的代码上搞搞。
还比较有特色的一些概念,如 trackable,rememable 等概念还是不错的,直接可以在模型中定制调用。
忘记密码只能在 sign_in 的时候才起作用,呵呵
最好还是自己写用户模块,代码能偷就偷一点,呵呵,这样可以增加自己未来想要的如增加用户统计,可以做分析等等
不过似乎自己也可以在 devise 基础上扩充,devise 侧重 authentication .
--引入了 cells 我的理解是 rails 中原来的共享 view 可以写到 cells,看上去这个 cell 有发展潜力 cell 对 engine 实际上是友好的,它试图独立于 rails 框架之外,可以随时随地被调用。 但是命名空间的问题,一旦配置不好,就会有些小麻烦,新手可以先不要用
--cache 用的是 memcache,为什么不用 redis,memcache 重启需要自己重建吗?redis 可以自动弄到硬盘文件上啊
--resque githu 开源项目,用于 github 后台。还没有看明白,估计用来送 notification,不过队列用的似乎是 redis
--数据库 mongodb,还有好多东东需要深入下。
-- 搜索 用了 solr,看上去很美好的一个工具 Sunspot 是客户端 Solr 是服务端
--Settingslogic 文件读写配置文件,很方便,不错,问题是设置放在一个文件里面了,有时候不利于拆分,不过可以再分文件。
--carrierwave 文件上传,该学习下了,cms 和论坛程序中必不可少的。
--css&js 分别在 app/assets 和 vendor/assets,但是没有找到 bootstrap 在那里,奇怪。 原来在 GEM 里面,一下子还没有习惯过来。
-控制器分析 --nodes_controller 节点控制器 --topic_controller 帖子控制器 --replies_controller 回复控制器 --pages_controller,pages_version_controller, 此为 wiki 控制器 --accounts _controller 注册控制器 --users_controller, 用户控制器 - -- like 控制器,notifications,grids,home,photos,search,sites,
node 上面还有一层 section 的概念就是导航节点里面前面标题部分了。
cpanel 暂时不看 --posts,comments 这两个有点迷糊,没有和功能对应上,似乎是 wiki 里面的
-模型分析 --扩充了 mongoid 的功能
--Omniauth 多方鉴权 Gem,也是第一次接触,里面天地也广阔的很啊 https://github.com/intridea/omniauth https://github.com/intridea/omniauth/wiki/Philosophy https://github.com/intridea/omniauth/wiki/External-Resources http://asciicasts.com/episodes/236-omniauth-part-2
--模型中用了大量的 scope,使得控制器代码更加简洁 -- 去掉了默认的 response_to { format.html} 代码更加简洁
--一些疑问待学习 相关帖子功能如何实现? 到处是 drop_breadcrumb,什么的干活啊?导航条产生,代码在此 https://github.com/xdite/bootstrap-rails,还发现了另外一个库 https://github.com/weppos/breadcrumbs_on_rails 如何实现通知功能?
没有什么内容,有收获会逐步补充