• 做得挺好的,速度块,社区很热闹,质量也很高。我就是不太理解为什么这种有点秘密性质的内容会持续不断地产生么?虽说点子不重要,执行最重要,但点子也是难得的,至少想到点子的人会看得比较重。

    另有个小建议,刚刚窥视了一下 Javascript, 发现基本全是 global function,连i都出来了。这个可以改进。

  • RubyChina 的前端没人敢动 at 2014年05月21日

    需要的话我可以来改,几个月前刚改过。

  • @skandhas 那就是"Patterns of Enterprise Application Architecture", 记不太清楚了。总之 DHH 是引用了 Martin Flower 的网页:http://www.martinfowler.com/eaaCatalog/activeRecord.html

    他的原话我没记录,看过就看过了。大意是让看 UML 里面几个 methods, 这些超出了简单的 persistence

  • 时间的遍历如何写? at 2014年05月21日

    月份的可能取决于你怎么用它,是字符,数字还是 date

  • 应该是有 migration 没有跑完吧?试试rake db:migrate ?

  • 哈利波特写的 Django?

  • Javascript underscore vs Ruby at 2014年05月20日

    这个。。。Underscore 本来就是 Jash 模仿 Ruby 的语法创造出来的,没法跟 Ruby 比啊。

    另外,有关 call 一块,我所见到的大部分是用在 Proc 上面,极少见到使用method, 比如

    a = ->(arg) { arg + 1 }
    a.call(2)
    #=> 3
    

    这个和 Javascript 的用法是类似的。a类似于一个 JS 的函数。

    另外,Javascript 也可以直接绑到对象上面。例如 Backbone 里面,Collection 就可以直接使用 array, collection 类的大部分方法而不需要_.

  • @wcc526 直接在 controller 里面 include MyHelperModule

  • @zgm 查个文档而已,谈不上厉害 :) 我也觉得在尽量少用的前提下,helper 放在全局在一些时候还是有意义的,但分开 controller 实在没有必要,容易造成重名污染,就像楼主所说的不知道哪个起了作用。这个改动还是挺好的,强迫所有的 helper 放在同一地方减少污染机会。

  • @Rei @zgm @wcc526

    找到答案了,确实后来默认是全部包括了,就像楼主和 Rei 所说的情况。

    By default, each controller will include all helpers. These helpers are only accessible on the controller through .helpers

    但是,如果确实想要一一对应,也可以更改 Rails 设置

    In previous versions of Rails the controller will include a helper whose name matches that of the controller, e.g., MyController will automatically include MyHelper. To return old behavior set config.action_controller.include_all_helpers to false.

    http://api.rubyonrails.org/classes/ActionController/Helpers.html

  • 现在我很少用具体到 controller 的 helpers,不过记得在 Rails3 里面是不行的。PageHelpers 只能作用到 views/pages,这也符合 Rails 的统一命名。楼主你确定是真的全部可见?

  • 其实你不需要 ORM at 2014年05月20日

    这个和思维方式有关。如果脑袋里只想着 object, 用 ORM 就是自然而然的事情。直到实在没办法才会想到 SQL。

    楼主干说无益,不如拿出一个例子来,让大家比一比,看看这个例子更适用于 ORM 还是 SQL

  • 既然都只有一个,has_one, 干嘛费事弄两个新表,全放一个表里面不就得了

  • ruby 的性能问题。 at 2014年05月19日

    这真不能算喷,楼主做的功课太少了。这就好比你买 iphone 之前去问别人 cpu 是不是最快,会不会影响实际应用。

  • DHH 今天发布 Active Job at 2014年05月19日

    @zgm, 有道理,也许会先吃 cron 这一块,其他的要玩 redis,内容更多了。@blacktulip,是的,任务放在一起也比较有条理。

  • DHH 今天发布 Active Job at 2014年05月19日

    貌似大致上是 whenever, resque, sidekiq 等等的统一接口。方便是方便,感觉没啥必要吧。

  • Rails 4 数据关联问题 at 2014年05月18日

    @XiSi 我的意见是除非实在不得已不要使用 try。如果都需要这么写,一个正常的 Rails 程序会充满了 try, try this, try that, is there anything you are sure?

  • 我对待技术学习的态度 at 2014年05月18日

    @whitecrow 我不知道 Angular 和 Java 的那个框架有什么关系,也许原理类似,这很正常,Angular 从来也没说他那个是独创的,Knockout.js 比它还早出现呢,但 Java 能广泛应用在浏览器?

    我不反对你反对 Angular 或 Node 或其他,我反对的是你的理由是他们的技术不够成熟。Angular 和 Node 还要多成熟你才能学?当然你学了一些之后发现不适合就不学了,这个完全合理。

  • 我对待技术学习的态度 at 2014年05月18日

    我觉着吧,你可以不喜欢特定的技术,比如 Angular, MongoDB, Node.js 等等,或者判定他们不适合你或你公司的应用场景,但不必要以“技术不成熟”为理由拒绝学习。

    什么技术都是从不成熟到成熟的。只用完全成熟的技术,公司产品难有竞争力,个人难找工作,社会也没进步,扯远了,哈哈。

    关于你说的不学细节我也不赞同。貌似这是计算机科学家的态度,不是程序员的态度。基础当然重要,但要形成生产力,还是需要细节,大量的细节。

  • Linux 下

    GUI tools:

    kidff3 meld kompare guiffy vimdiff

    Comand line tools

    diff sdiff bdiff

    总结:最好的是 kdiff。界面一般,功能无敌。我一直在用。

    Git 设置:在~/.gitconfig里面

    [diff]
        tool = kdiff3
    
  • Rails 4 数据关联问题 at 2014年05月17日

    @suchiva 由于功能是逐渐增加的,在开发环境下可能会漏给一个记录创造对应的 association。users 在循环时某个 user 没有 book, 但你呼叫了 book.name, 就会报错。你可以看@saiga 的方法找到这个记录。

  • Rails 4 数据关联问题 at 2014年05月17日

    一般这个错误是因为漏了给某一个 user 创建一个 book.

  • 业务逻辑放 model 一直是 Rails 的传统。

    最近一年有反动思潮称 ActiveRecord 应该只负责 persistence, 把业务逻辑放入其他。DHH 反对这个并拿出 GOF 的 ActiveRecord pattern 做论据。

    我自己的看法是,简单一点的逻辑就没所谓。但多了的话,由 model 负责太多其实违反了 SRP, 我觉得只管 persitence 会比较清爽。

  • 没用过。只用过self.table_name = “foos”,一直有效的。

  • @lyfi2003 其实很简单的,就不写短文啦 :) 具体可以看这里https://github.com/tpope/vim-rails/blob/master/doc/rails.txt#L705

    这个自定义 projection 好像是去年底才出来的,我之前也不知道,一直用的很老的版本。后来写 decorator 的测试发现跳转不方便于是重新看文档并更新。

    它的选项很多,我自己觉得比较实用的还是非标准文件和测试之间的跳转。比如decorators/foo_decotrator.rb跳转到spec/decorators/foo_decorator_spec.rb。虽然可以分项目设置,但目前我就按文档直接设了几个全局的,比较方便。

    @lufeihaidao 我把排序设成 MRU,用过几次后,多数情况下可以一键即出。

  • 那 easymotion 实际使用频率高吗?

    另补充一点点:非标准目录如果常用,比如/services, /serializers, Rails.vim 可以在项目里自定义。下一个项目直接 copy 就可以了。Angular 貌似有一个类似 Rails.vim 的插件实现同样跳转,只在 Angular 内部。

  • 谢谢分享。easymotion 没有用过,你平时实际使用多不多?会不会比较耗资源?

  • 正常来说根本不会有问题,完全不需要 hack。之所以出问题是因为你的做法不规范,测机器的和测人的混在了一起。

    既然用了 Capybara,就要测试用户的行为而不是系统的行为。难道用户自己会patch? 只有机器才会。难道正常用户可以看到 response? 他只知道跳转到了什么页面。

    单就你这一个测试来看,如果要测试#patch, 不必要用 Capybara,而应该用 controller spec, Rspec 或者 Minitest 都可,测试 redirect。因为你并没有给用户提供修改其他用户的 UI. 所以 capybara 没法测。

  • @unstop 谢谢,看了一下 Vue,挺不错的,轻巧灵活。