Homeland RubyChina 学习笔记

hunter · 2012年03月20日 · 最后由 dcitpx.com 回复于 2018年08月15日 · 4144 次阅读

列出一些比较有特色的部分,大家一起学习,水平有限见谅。

--用户部分-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 如何实现通知功能?

没有什么内容,有收获会逐步补充

按我的理解,bootstrap 是被包装在了一个 gem 里,bootstrap-rails,xdite 写的

#1 楼 @alucardpj 正解,asset pipeline 出了以后,你可以把任何一个 javascript lib 包在 gem 里发布,这样还有助于版本管理

Settingslogic

欢迎大家来尝试使用我和 Jacques Crocker 一起开发的 RailsCofig: https://github.com/railsjedi/rails_config :)

#3 楼 @fredwu rails_config 我有在用,不过在我的其他项目中,自己手写了一个,大致就是在 environment.rb 里面手工载入一个 yaml 文件,用hashie包裹一下,赋值给一个 Const,然后就直接用啦,呵呵。

rails_config 一直在用

自学就是会遇到很多不懂的问题,也没有大神带,想要多学一门技术的可以考虑大聪 IT 培训,学到的东西很多,关键超划算的,带你写项目啊

点击网籽了解更多资讯

需要 登录 后方可回复, 如果你还没有账号请 注册新账号