• Rails 源码笔记 at 2014年03月31日

    赶脚你这么做很勉强。Rails3 和 Rails2 两个项目以及数据库高度耦合。现在是能转了,将来改动的时候就头疼了。另外你使用了 module variable, 是否对 thread 友好还不得而知。

  • 没有注意到说明没用。我看了半天没看出区别。管理员不需要说明原因,Analytic 里面一看没什么人点就可以考虑改动。

    @chinakr 那些 SEO 的套路早就过时了。

  • @swordray 不等同于直接禁用 spring,因为 install 之后有些命令就自动变成了带 spring 的,但好像有时和 bin/spring 有些冲突。具体原因我也没时间去弄明白。反正 hack 起了作用。

    spring 还是有些坑的。它本质上是加载部分环境节约每次加载的时间。但有些改动,比如 model 的某些代码,和 Rails initialize 有关的代码等等不能反映在已经加载的环境中。需要手动 spring stop 然后再启动。

  • 你还是什么新手啊。

    spring 经常莫名卡住,我也碰到过,主要是跑 rspec 的时候。一个 hack 是不使用bin/spring。我把它改名bin/spring_tmp禁用了。

    还有一个可能是同时开着 pry,然后在 pry 里面运行了一些跟数据库相关的命令,pry 把数据库锁住了,退出 pry 后测试就继续跑了。

  • @leekelby 你这个不是动态的,和楼主环境不一样。

    @gihnius 我碰到过类似情况,也用的类似处理办法,也有动态加载后尺寸不一的问题。我的解决方法是 popover 里面的 html 用一个 wrapper 包起来,然后强行规定 wrap 的尺寸。

  • @small_fish__ 多谢。

    关于 1,只要是 REGEXP 能抓住的都没有问题啊,不太明白极端情况是什么。

    关于 2. 其实 cache_text 目前是有些小缺陷的,就是更新那一块没有经过测试,用的时候得注意这点。按常理既然是 cache 就应该是可以 destroy and re-build。当时考虑到 Activity Feed 一般情况下都是看了几个最新的就算,老的历史记录一般是用来做研究而不是给用户看,这个不是主要需求,所以没往深做。只写了个 update 的草稿,没文档,没测试。

    i18n 我不太懂。这个 cache_text 只是储存原本 model method 返回的文本结果,不知道 i18n 有无问题。你若知道请指教。

    关于 3:任何 action 都是可以的,你可以在 config 里面设置。默认 create|destroy|update.

    要有什么新的想法欢迎随时提交 issue 探讨,就不占 ruby-china 的版面了。

  • @small_fish__ 不客气,能有用就好。求粉,求 PR,求白鼠... 最后一个不好意思说出口哈。

  • @small_fish__ 没影响的,在这里的主要区别就是有没有 attr_accessible,我加了判断的。测试在 Rails 3.2.16 下面跑过没问题,不过没写到 fixture 中。

  • 原来你是要记录用户的事件。

    Model 可以拿到 current_user,需要拐个弯。但我不喜欢这种做法。职能混淆。因为 model 不需要接触 controller context。

    有一个 gem Public Activity 就是这么记录的。

    因为我不喜欢这个做法,所以我自己写了一个 [Simple Activity](https://github.com/billychan/simple_activity), 从 controller 出发,不沾 models。你既可以显示在界面中,也可以选择不显示,留着若干原始记录备用。demo 在此。用得上的话请多提宝贵意见。

  • 如果只是为管理用,可以试下原装的 ActiveSupport::Subscriber 看能不能符合需求。

  • 什么样的 events

  • @swordray 明白,肯定是有用的,只是不是通用场景。另发现 ruby-china 头像更新 bug 一只。

  • 面试归来 分享一下面试题 at 2014年03月22日

    @Kabie 那样不会有很多不必要的数字么,比如大于 12 的月份等等。愿闻其详。 @karmue 那岂不是数学考试一样。

  • 怎么做 like 这个功能? at 2014年03月22日

    @loveltyoic 是的,挺省事的,一般情况下够用了 :)

  • 怎么做 like 这个功能? at 2014年03月21日

    counter_cache: true if you care performance and only care this stat. No new wheel needed.

  • 硬件便宜,程序员贵。要都这么写成本就很高了。

  • 楼主基本功还是有待提高。说句不客气的话,你自己写着笔记就好了,不好当作“教程”的。

  • .net 做的?怎么贴到 Ruby 论坛来了。点子不错,做得也不错啊。

  • Hybrid 技术调研 at 2014年03月19日

    @Victor 我只是说那个事情而已。其实文章整理得非常好,很有帮助,谢谢你。

    @mobiwolf 不是我说的:)是扎哥一两年前说的,他说他拍板用 HTML5 导致 Facebook 前期在移动平台上很被动。

  • Hybrid 技术调研 at 2014年03月19日

    楼主做了好多研究。不过 Facebook 扎哥都承认 html5 是失败的选择了,楼主还拿他举例?

  • 不靠谱的项目碰到了更不靠谱的接单者。

  • 感觉改前改后的逻辑都很混乱。这个 method 看似 class method,什么deleted这些都是 class 的逻辑。但又没有 self. 而activities又貌似 instance's reflections。

    这样看起来很不清楚,怎么又有 records,又有 activities。楼主还是先搞清楚这些,再写个测试再改吧。

  • 什么叫“今天二十晚”?

  • vim 的字体有限,只能粗体,普通和斜体(貌似只有 GUI 版的才有,不确定),没有大小之分。所以不能完全预览的。另外隐藏各种符号也比较麻烦。

    vim 本身就带有 markdown 的支持,默认支持.markdown 后缀。要支持.md 需要自己设置一下。可以高亮大部分的语法。

    Linux 下面有一个 retext 的软件可以完全预览和修改 markdown,很好的。

    我一般是在 vim 里面直接写和改,最后用 retext 预览一下,有小问题就在 retext 里面直接改了。

  • module 共享变量 at 2014年03月14日

    @littlell 很好滴

  • module 共享变量 at 2014年03月14日

    最好不要定义变量 (类似@@foomaccessor),这个是有气味的,特别是在好几个模块都可以读取的情况下。Thread unsafe.

    可以定义为常数或 module method,只读。

    如果子模块都要读取,最好放在module1

    如果一定要可写的变量,比较好的方法是做一个 class 来包裹,每个其他模块读取都建立一个新的 instance, 这样互不干扰。

  • Node 是昨天的 Ruby 吗? at 2014年03月13日

    @whitecrow 多谢!