其实 Emacs 对 if 的缩进是 ruby style guide 里推荐的方式,觉得太长了可以 if 之前换行
a =
if foo
1
else
2
end
https://github.com/zenspider/enhanced-ruby-mode 这个缩进比 ruby-mode
好很多,不过不稳定,比较慢,有时候会假死。ruby-mode
可以调整的参数比较少,调整一块又会影响到另外的地方。
还从没正儿巴紧整过 RJS。最大的问题应该是测试吧,js 东一团西一团,要测也只能上 selenium 这样重要级的东西。
估计是 tuborlinks 的问题
应该是在编辑器里也用了 Icons 那个字体。
可以用 haproxy,配置下后台只需要起一个服务就行了。
包邮国已经独立了?
用 pull request 那个插件是不是所有 pull requests 的 build 都在一个任务里?这样任务历史会比较混乱吧。
之前用的是 http://entagen.github.io/jenkins-build-per-branch/ 会用一个 job 作为模板,为每个 branch 创建个新的 job。不过就是 PR 的状态要自己用 API 在 build script 里设置下
一年保修变两年。而且有两次意外损坏的修理,只需要付出比较低的服务费,也就是不保修的一些损坏,现在你付一些服务费就可以修了,不然是要按照实际维修的费用出的。
太久没更新,步子迈太大了
#3 楼 @jhjguxin deep_dup
只是对嵌套的 hash
递归拷贝。你这个是数组里套 hash。
循环的时候数组元素是直接传 (准确说是转引用,就像调用了个方法 do_something(a[0])
给 block 的,所以你用到 delete
这种 in place update 的方法,就会影响到数组中存的元素,因为它们指向同一个对象。
如果你想找出附合某个条件的东西,又想做修改,又不想影响原来的数组,应该是拷贝你要修改的数组元素,而不是数组本身。
a.select { |e| [1].include?(e[:a]) }.collect(&:dup).each { |e| e.delete(:a) }
# 或者用 Rails 的 Core Extension 里的 except
a.select { |e| [1].include?(e[:a]) }.collect { |e| e.except(:a) }
a.dup
是 dup
的 array
。里面的成员并没有 dup
2.0.0 (main):0 > a = [{}]
[
[0] {}
]
2.0.0 (main):0 > a.object_id
70243821092280
2.0.0 (main):0 > a.first.object_id
70243821092660
2.0.0 (main):0 > b = a.dup
[
[0] {}
]
2.0.0 (main):0 > b.object_id
70243877001940
2.0.0 (main):0 > b.first.object_id
70243821092660
2.0.0 (main):0 > a.first.object_id == b.first.object_id
true
整理了下,相关视频里找得到的
帅气
这个 rate 不错,一年折算 2000 小时,按 6 元的汇率,一年有 35 万到 50 万
通用的方法是用 find
或者 find
搭配 xargs
。也可以用专门的 pkill
和 pgrep
因为你数据库已经有这张表了,如果你要创建的是一样的表,也没有数据需要保留,就手到在数据库里删除掉,然后跑下 migration。如果想保留,也可以先把 db/migrate 下相应的创建表的行注释掉,跑完后再注释回来。如果还是觉得麻烦,而且你确定当前数据库不用跑任何 migration 就是最新的状态,也可以直接手动在数据库的 schema_migrations
里添加记录。这张表里记录的是所有已经执行过的 migration 的版本,也就是文件名最开始的那一串时间戳。