• #3 楼 @david_w 还在我手上。

  • #1 楼 @lgn21st 不是抽到的奖,来这公司没多久,所以当年终奖直接发的。

  • 感觉装个类似 whoscall、搜狗号码通的软件还是比较有必要的。这种电话或者短信一进来,就会显示像“高频封锁电话”之类的提示。

  • #5 楼 @yeyong14 哈哈.. 不客气不客气

  • #3 楼 @yeyong14 可以通过它访问到跟这个 form helper 绑定的 model(我把你之前 block 里的参数 photo 重命名成了 photo_fields)。

  • 外面套了

    <% @product.photos.each do |pho| %>
    

    里面就需要再把 pho 传给 fields_for:

    <% @product.photos.each do |pho| %>
      <%= f.fields_for pho do |photo| %>
    

    另外如果你是想修改 photo 对象本身的图片文件而不是把整个 photo 对象替换掉,需要给 accepts_nested_attributes_for 传个参数 :update_only => true

    还有,其实你这种情况好像没必要在外面套个 each,我看这段代码无非就是想引用那个 photo 对象嘛,直接用原来的代码改改:

    <%= f.fields_for :photos do |photo_fields| %>
      <% photo = photo_fields.object %>
      <%= image_tag(photo.image_url(:small)) if photo.image?%>
      <%= photo_fields.file_field :image %>
      <%= photo_fields.link_to_remove "删除", class: 'btn btn-mini btn-success' %>
    <% end %>
    <p><%= f.link_to_add "增加图片", :photos, class: 'btn btn-primary' %></p>
    
  • #35 楼 @liwei78 :) 其实我反而不喜欢引用别人说的话来说明道理,感觉这样有些偷懒。经常见到些一直没搞明白也没怎么花精力去搞明白面向对象的,突然看到某“大牛”说面向对象就是个渣,好,那面向对象不用研究了,太好了,顿时轻松了,突然还高你们这些研究面向对象的人一等了。于是拿着真理到处宣传。

    我觉得主要还是自己弄清楚了,说话有没分量无所谓,说服不说服得了别人也无所谓,你说是吧?

    现在再来回帖主要是因为在公司的群里看到有人转载这两天的某篇文章有感而发。跑题了。

  • 你不需要这些 Gems at November 23, 2013

    #50 楼 @Rei #55 楼 @xiaoronglv

    我刚试跑了一下 minitest,它的 describe 方法好像跟 rspec 的作用一样。

    在 rspec 里 context 只是 describe 的一个别名。

  • 你不需要这些 Gems at November 22, 2013

    实际上我一开始觉得 RSpec 的优势在于它能够更好的组织测试代码,因为它的变量作用域划分很灵活,加一层 describe 就是一个新的作用域,然后就可以为这个 example group 新写一个 before :each。

    嗯……test unit 也能,但是好像大家并没有都在正确的用。后来在用 test unit 的那段时间里,我总觉得如果用 test unit 写测试的话,应该对某个类的每一个功能(方法)分别写一个 TestCase 类,然后再在这个 TestCase 类里遵守 one assertion per test 的原则。而不是把针对整个类的所有方法的测试都塞到一个 TestCase 类里,因为被测类的不同方法需要的 setup, teardown 可能都不一样。把整个类所有方法的测试都塞到一个 TestCase 类里的话,结果测试代码很容易就是一团乱,比如说你需要在测试方法里做一些本来是 setup 做的事。当然也就只是这么想想,没有去打破团队里大家的习惯自己一个人尝试这么干。

    所以我后来一直觉得这两个用哪个都无所谓,用好了都一样,用不好……也都一样。

  • @liwei78 我觉得面向对象就是管理代码复杂度的一种方法。我想代码之所以复杂,一是因为逻辑重复、二是因为不好的命名、三是因为过于细节,层次不分明以致于人脑处理不过来。

    程序员可以用面向对象语言的封装、多态等机制来去除重复、隐藏细节、良好的命名以表达意图。

    那些设计模式、重构手法,讲的都是这些东西。

  • #28 楼 @knwang 以前我也很喜欢纯粹自顶向下(分析法)的设计方式,现在觉得自顶向下和自底向上都得用。如果纯粹自顶向下的话,好像有些对象不容易被发现,需要自底向上(归纳法)才能把它们找出来。

  • 如果你手边有《Everyday Scripting with Ruby》,可以看看第 7 章“假设式脚本编写法”。

    或者如果有《The RSpec Book》的话,看看第 8 章第 2 小节“The Code You Wish You Had”那一部份。

    或者如果你读过《重构》,可以试试把这句话倒过来理解一下“我们应当遵循这样一个原则,每当感觉需要注释来说明一些什么的时候,就将要说明的东西写进独立函数,并以其用途(而不是实现手法)命名。”——既然要把细枝末节的代码写进独立的函数,何不一开始就定义好你要的那个函数(方法)而不是把这些逻辑散落在外面之后再回头整理?

  • [译] 你不是软件工程师 at November 20, 2013

    这有本《软件工艺》,挺好的。

  • #9 楼 @zealinux 不只是 570,包括 905,705 也存在这样的问题。好像现在罗技的鼠标用一段时间都会单击变双击,m905 我保修了 3 次,每次都是免费给我换,换着用一段时间又这样,罗技自己不嫌浪费钱和麻烦,我都觉得麻烦了。

  • 还是关于开发工具! at November 05, 2013

    #31 楼 @shangrenzhidao 是可以调。不过一改连触摸板方向也变了,不能单独改鼠标的滚动方向。

    之前我在公司外接键盘和鼠标使用,回家就不带键盘,所以得用触摸板,这样上下班又得分别调整一次。

    家里也有键盘和鼠标,不过是给另一台自己的笔记本用的。

    可能像我这样的情况比较特殊吧。

  • 还是关于开发工具! at November 05, 2013

    #18 楼 @shooter 同分裂的路过。。键位习惯要来回切换,还有鼠标滚动的方向。

    关于主帖,感觉 Linux 虚拟机里装 Windows 跑得比较快:Linux host 比 Windows host 快,Linux host 下的 Windows guest 也比 Windows host 下的 Linux guest 快,甚至感觉 Windows guest 和 Windows host 差不太多。

  • #3 楼 @fredwu 另外,spree 你也看不上眼嘛? :D 感觉这是 rails 项目里代码写得非常棒的一个。

  • #8 楼 @fredwu 其实随便找一个复杂点的(这是前提)项目,如果里面的每个方法代码行数平均都能控制在 10 行以内,质量应该就不错。也是个评估别人代码质量的偷懒但有效的办法。

  • #6 楼 @bao1018 人做的事情非得自动化的话,不如写一个程序来帮你写程序。

  • 我觉得对付莫名其妙难以理解的概念的方法就是不用它。发现问题,然后解决问题就好了。真正的问题如果没被发现,用起来也是乱用,反而会制造更多的问题。同时你也没法保证人家提供的东西就是对的。

  • ruby-china 跑起来有两个 BUG at September 28, 2013

    还有一个 bug 是广告邮件不带退订链接。

  • http://ruby-china.org/users/city/%E9%95%BF%E6%98%A5 好像长春人好少,比厦门还少。

  • Rails Database Migrations 译文 at September 22, 2013

    #6 楼 @huacnlee 谢谢,hopo 之前也跟我介绍过这个方法,用来解决已有的问题蛮好的。

    就是我个人比较希望能从一开始一直保持 migration 可运行。

  • Rails Database Migrations 译文 at September 22, 2013

    比较兴趣知道的是社区里有多少团队的 db migrations 是可以让一个新人加入团队搭建环境的时候正常从头跑到尾的。

  • #5 楼 @Rei 已经有了 Web 版,又有了 Kindle 版,ePub 应该不是什么技术问题了,不知道为什么迟迟不出。估计还是怕传播太容易。你看他们 Kindle 版也不是直接提供下载,而是选择了发送到设备的方式。至少增加了那么一点点复制和传播的成本,虽然对他们的读者群体来说这些应该都不是什么问题…… 哈哈,我只能这么猜测了。

  • 最好就是让他兴趣什么学什么,把选择权还给他,不要老是“让他学 XXX”。真的肯学、学精的前提就是兴趣,愿意自己花时间去钻。这年头,喜欢把自己搞得很伟大的样子、自以为是的人太多了,尤其是当家长的。路是要自己走的。况且有很多事情你真的不能保证自己是在帮他还是在害他。

  • #32 楼 @nickelchen “技术大拿”的责任主要在于少 主动 的误导人,同时尽量做好自己就已经很伟大了。自己都做不好还总想着拯救世界就算了吧。

  • #4 楼 @miclle 那层胶抠不掉可以试试风油精,滴两滴在上面,涂开了再拿信用卡什么的刮一刮,就很容易去掉了。最后拿纸巾弄点水把风油精擦干净。

  • 有 Linux PC HiFi 玩家不?介绍点优化经验呗。

    p.s: ubuntu -> gentoo (强力工具需要强力掌握,于是) -> arch

  • ZT 不要复杂化 Vim at August 19, 2013

    一个 NERDTree 打天下

    https://gist.github.com/qiumaoyuan/987065