赶脚你这么做很勉强。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 后测试就继续跑了。
@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 一只。
@loveltyoic 是的,挺省事的,一般情况下够用了 :)
counter_cache: true
if you care performance and only care this stat. No new wheel needed.
硬件便宜,程序员贵。要都这么写成本就很高了。
楼主基本功还是有待提高。说句不客气的话,你自己写着笔记就好了,不好当作“教程”的。
.net 做的?怎么贴到 Ruby 论坛来了。点子不错,做得也不错啊。
楼主做了好多研究。不过 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 里面直接改了。
@littlell 很好滴
最好不要定义变量 (类似@@foo
或maccessor
),这个是有气味的,特别是在好几个模块都可以读取的情况下。Thread unsafe.
可以定义为常数或 module method,只读。
如果子模块都要读取,最好放在module1
。
如果一定要可写的变量,比较好的方法是做一个 class 来包裹,每个其他模块读取都建立一个新的 instance, 这样互不干扰。
@whitecrow 多谢!