Access denied, Please sign in and make sure you have proper permission.
我一开始也是用 User.current
,后来直接给 model 加了 attr_accessor :operator_id
,需要的时候就在 controller 设置一下。
原来你是要记录用户的事件。
Model 可以拿到 current_user,需要拐个弯。但我不喜欢这种做法。职能混淆。因为 model 不需要接触 controller context。
有一个 gem Public Activity 就是这么记录的。
因为我不喜欢这个做法,所以我自己写了一个 [Simple Activity](https://github.com/billychan/simple_activity), 从 controller 出发,不沾 models。你既可以显示在界面中,也可以选择不显示,留着若干原始记录备用。demo 在此。用得上的话请多提宝贵意见。
#1 楼 @_samqiu 很好,这个是可以的,但是如果 resource 比较多的化,这样会比较郁闷,代码修改地方太多了,而且也不太好吧,都是一样的代码。
@small_fish__ 没影响的,在这里的主要区别就是有没有 attr_accessible,我加了判断的。测试在 Rails 3.2.16 下面跑过没问题,不过没写到 fixture 中。
#5 楼 @billy OK,thanks,,一种新的角度解决问题,很不错,对于 loging 来说感觉足够了,研究代码去了,,
@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 的版面了。