• controller block 默认是创建 AnonymousController,并且会自动创建 AnonymousController 的路由,当然 action 得你自己写。你写了这个就等于把当前的 controller 彻底改变了。get, post 都会度到 AnoymousController#get, #post 等。

    你的第一段测试看似通过,其实并没有真正测到这个功能。sign_in是 Devise 给出的一个 helper, 目的是在测试里面快速 sign in, 通过 Warden 直接实现,不会经过任何路由。

    并且第一段测试也没有意义,第一个是测 Devise 已经给出的 sign_in helper, 第二个只是证明 after_sign_in_path 默认 root_path, 和 redirect 完全无关。

    怎么改进得你自己决定。controller spec 本质是是 functional testing, 也可以有多种风格,可伸可缩。

    如果是偏 unit 的风格,那么在这里完全无需自定义 after_sign_in_path,只要测到 ApplicationController 收到这个 method 就可以结束。然后 ApplicationController 里面单独测这个。

    如果是偏 integration 的风格,那么也无需管这个,测 redirect 用 controller.full_path 符合要求就行了。这个就已经包含了 after_sign_in_path 的逻辑。

    我个人的做法是,如果没有什么特殊的,测一个 integration 就可以收工了,主要是帮忙看看代码里面有什么 bug。如果逻辑比较特殊,就 ApplicationController 里面单独测。stub controller block, 总之不会花太长时间。

  • 成都 NodeSchool 回顾 at 2014年06月10日

    光看图就比哥伦比亚那个强多了,他们好像关小黑屋。

  • 加载更多的功能如何实现? at 2014年06月10日

    硬 copy 教程要看一下时间啊,这个是 2008 年的,你还敢直接用。并且 RJS 早就过时了: http://weblog.rubyonrails.org/2011/4/21/jquery-new-default/

    你要在传统 Rails 里面实现这个,原理是这样:

    1. JS 部分基本原理没有问题。
    2. JS 的 Ajax 可以用 jQuery 实现,请求到 index action
    3. index action 回应 js 请求到 index.js.erb,并根据 page 组织一个@products
    4. js view 里面回复带@products的新增部分 html
    5. 前端 Ajax 成功后把新增 html 加到老的后面

    这个功能虽然可以实现,但我认为基本就是玩玩,因为前后端依赖太多,要有需求变动很麻烦。最好还是用传统 pagination。如果以后要追求 js 的酷效果还是得靠 json

  • @xiongxin8802 Music 那个做得挺不错,速度也好快。提交的是 html, 有点像 pjax

  • @xiongxin8802 收到。这个 repo 貌似不属于网易官方。还是谨慎些吧,成熟的库比较好一点,除非你是手中无库,心中也无库,随心所欲的 JS 大牛。

  • @xiongxin8802 一个没有 github 地址,最近更新在 2012-08-30 的库有什么好学的。

  • 买的东西就是这个麻烦。表面看着光鲜,里面不知道写的是什么。还有的糊巴糊巴能达到效果就行了。

  • @iBachue 不能说。

  • 写个小部件无需动用 Angular 吧。

    建议试下独立 jQuery, jQuery + Backbone, React.js + Backbone 等组合。

  • 最好的方法是给 A 的 models 做 API 并设置 localhost 路由,B 通过内部路由访问 A 的 API 进行读写。这样相互独立,可维护,可扩展。

    千万不要共用数据库,或用复杂的手法调用 A 的 models。

  • 写出代码来分分钟,难点在测试。没测试的 gem 很少人敢用。

    本来写测试就比写代码难。gem 里面要尽量简化、独立,要求更高。什么时候用 demo app,什么时候用 unit,都挺费脑筋。

  • 这个结果是对的,因为 joins 用的 INNER JOIN.

    你如果想要即使不匹配的数据,就需要手动写 LEFT OUTER JOIN

    Client.joins('LEFT OUTER JOIN addresses ON addresses.client_id = clients.id')

  • 当然可以啊。这个 joins 就把所有有用户住的房子拉出来了。你还可以加 where 选定什么用户。

  • 这个不需要循环所有啊,一个 joins 的 scope 就搞定了。

    A.joins(:bs)

  • @egg_show 是批处理,所以需要有东西“处理”,一般是做数据的增删改。找东西没有 ActiveRecord 或者 raw sql 找不到而需要批处理的。

  • 我觉得第三种能做到就做第三种,不行就第二种。第一种 find_each 是用来执行命令的,不是用来找东西的,batch_size 在这里有点误用。

  • swift 其实门槛挺高的 at 2014年06月04日

    @yangjie6020 是不是可以总结为代码中的函数名和变量名越长学起来就越简单?

  • 很多 gem 为了保持通用性必须把代码写得更抽象,所以会比正常代码难懂些,和元编程什么的没什么关系。你多看几个熟悉了 pattern 之后就会很简单。

  • @fresh_fish 这个毫无价值,浪费几个美金。

    楼主这个域名可能只能做非盈利社区。这个语言是苹果专有的,有 trademark。属知名品牌,任何在 Swift 发布之后注册的域名,除非内容毫不相关,否则 trademark 所有人是有权要求你无偿转让,特别是以盈利为目的的。非盈利的公益性网站其实也可以这么要求,只是一般所有权人不会那么严格。

  • 通过 Amazon S3 使用 google at 2014年06月03日

    不是最近,是以前。

  • 就是@zj0713001 这么弄就好了。哪里有时间一个个 commit 去探索心路历程。