• #12 楼 @zw963

    第一个问题其实 @nightire 解释的非常准确,且给出的例子中的注释也没有问题,不过为了帮助你理解,我给你贴一个更加直观的代码。

    describe Post do
      # 这里没有定义 subject,所以默认就是 Post, 而且不需要去初始化对象,因为测试的是 Post 本身而不是它的实例。
      # 出处: https://github.com/thoughtbot/shoulda
      it { should belong_to(:user) }
      it { should validate_presence_of(:title) }
    end
    

    第二个问题,不能仅仅按照学究的方式从语言和功能定义角度去理解,而是要从 DSL 帮助增强代码的表达能力角度来理解。这里的 subjectlet 都是通过尽量用英文的自然语法来加强代码的语义表达能力,subject 就是英文语法中的主语成分, it 在这里所指代的正是主语,当 it 和 block 中的 subject 同时出现的时候,目的是为了增强代码的语义可读性。let 是定义 helper 方法的另外一种表达方式,并且有 lazy-evaluated 的优点:

    # 重构上面的例子
    describe "Checking Account initialization" do
      # let 可以改写成
      # def sharting_balance; Money.new(50, :USD); end
      let(:starting_balance) { Money.new(50, :USD) }
      subject { CheckingAccount.new(Money.new(50, :USD)) }
    
      it "has $50 balance" do
        expect(subject).to have_a_balance_of(starting_balance)
      end
    
      it "has a balance attribute which equals the starting balance" do
        expect(subject.balance).to eq(starting_balance)
      end
    end
    
  • about ruby-china model ? at March 09, 2013

    #4 楼 @simlegate 学好英文其实很重要,不过即使是中文,海峡对岸也有不错的资料,建议仔细研读一下这篇 @ihower 大大的文章:http://ihower.tw/blog/archives/3949

  • 原来 github-markdownredcarpet 是一个作者,Ruby China 用的是 redcarpet 并做了一些 Hack,如果直接用 github-markdown 就对了。不同的是 Ruby China 是在后端完成 code highlight 的,而你用的是 highlight.js。

  • #3 楼 @nightire 神回复,收藏!两个方法被你挖掘到如此深度,且读罢让人豁然开朗!赞一个!

    #1 楼 @zhulinpinyu 非常能理解你第一次见到 letsubject 的时候会困惑,我第一次也弄不明白,如果不是自己写亲自动手多写一些这样的测试代码,仅仅通过文档阅读和看其他人的代码,是很难掌握这两个方法的神髓的,所以建议你照着 rspec 文档 1 文档 2 上的例子亲自敲一遍。这里要再一次赞一下 @nightire 深挖源码的做法,真的是一个好习惯,能帮你深入理解 DSL 语法糖这一表层抽象之下的细节是什么,上帝隐藏在细节之中。

    遇到问题其实不用 AT 大牛(我必须承认你 AT 的几个人中我不是大牛)。如果大家都用 AT 大牛的方式,那么没有被你 AT 的人怎么会乐意帮助你,回答你的问题呢?更不会出现三楼这种神回复了。

  • about ruby-china model ? at March 09, 2013

    这是 Rails 提供的一个方案,一种优雅的 included 以及解决被 included 的 modules 之间的依赖问题。具体解释有点复杂,跟 MongoDB 无关,不应该发到 MongoDB 这个节点。

    如果你想了解 ActiveSupport::Concern 的话,建议你善用 Google。

  • #13 楼 @bugreg 谢谢,目前人不再上海,我会跟上海的活动志愿者联系,下次去跟 ARM 一起搞,先谢过~

  • 貌似激活后还无法修改自己的登陆密码,要等一封邀请邮件,通过邀请邮件才能完成密码设置并登陆。

  • 按照 branch 和 tag 来找。

  • #5 楼 @saberma 我刚刚收到激活邮件后,点击激活看到 500 页面,已经在 github 上提交了 issue。

  • 强烈推荐!希望更多人参与到这个项目的开发中,同时希望大家多多提意见,也多多帮助宣传推广。

  • pocket

  • 我在本地用的是 percona-server,完全无缝缝替换 MySQL。

    brew install percona-server
    
  • 多出去参加一点行业活动嘛,平时随便参加个啥活动经常送,从不需要自己买。

  • Teahour.fm 第 5 期发布 at March 07, 2013

    #29 楼 @happyaxu 没错,我的双屏摆放也是这样的,缓解了很多颈椎的压力。

  • #8 楼 @ywencn 估计是习惯吧。

  • 祝君好运!

  • 新手学习 Rails 的困惑 at March 06, 2013
  • jQuery 少见的 bind 写法 at March 06, 2013

    #5 楼 @hz_qiuyuanxin 我记得当时 Rails 从 Prototype 切换到 jQuery 的时候,这一手做法被广泛宣传,所以我以为是人尽皆知的东西。

  • jQuery 少见的 bind 写法 at March 06, 2013

    #2 楼 @hz_qiuyuanxin 原来是这样,但是你的帖子上没有说清楚呀。 ajax:success是一个自定义 event,不是标准的 DOM Event。具体工作原理看这里 https://github.com/rails/jquery-ujs/blob/master/src/rails.js#L119

  • jQuery 少见的 bind 写法 at March 06, 2013

    真的找不到文档嘛? http://jqapi.com/#p=bind 就算找不到文档,还可以 fallback 到源码里面去查一下嘛。

  • 两种方式都能达到自定义目的,一种是简单粗暴的 override 掉 bootstrap 生成的 css。另外一种是让 bootstrap 按照你的方式生成 css。我自己 90% 的情况下会选择前面一种,这样我不依赖 bootstrap 的 less 文件的组织结构。

    文档上提供了第二种方法 https://github.com/seyhunak/twitter-bootstrap-rails

    If you'd like to alter Bootstrap's own variables, or define your LESS styles inheriting Bootstrap's mixins, you can do so inside bootstrap_and_overrides.css.less:

    @linkColor: #ff0000;
    
  • ruby-china 建议 at March 06, 2013

    #4 楼 @kewin 我从不考虑盈利这件事,我考虑让社区发展更加活跃,我希望有兴趣,有需要的人花更多时间在社区上,创建更多有价值的内容。

  • ruby-china 建议 at March 06, 2013

    #2 楼 @NonTwitter 从社区运营角度,我知道有些本地生活社区,明明有强大的技术团队,但是故意把搜索引擎做成残废样子,目的就是为了迫使用户更多参与话题讨论。结果反而达到目的,让社区发展非常繁荣。

  • ruby-china 建议 at March 06, 2013

    我的建议是不考虑添加,理由是这样是在鼓励用户每天上一次,看一下摘要然后就走了。我更希望大家多上论坛,多参与评论以及自己挖掘寻找自己感兴趣的话题。

  • Teahour.fm 第 5 期发布 at March 05, 2013

    玩硬件有如玩摄影,真正的最高境界,其实你们都不懂。

  • 谁有空传个照片上来嘛。

  • 求职一份 at March 05, 2013

    这好像是某种文体,但是不确定具体是哪一种,凡客体?

  • '/usr/local/var/mysql' does not exist.
    

    说明你的 mysql 配置文件有问题,把 socket 指向了一个不存在的目录。

  • 好像以前 @huacnlee 在什么地方说过,首页是给爬虫看的?