论坛首页 编程语言技术论坛

after_find不见了

浏览 7950 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-13  
cookoo 写道
jack 写道

谢谢提醒了,不过这里提到一个效率问题,实际上 每次进行这样的计算的确很慢,那么能否指计算一次呢?

换句话说,就是在rails中能否使用一般意义上的单件类。类似这种after_find的操作,每次的计算基本上一样的。如果能够使用单件类,就能够极大的改善性能。不过这样的单件类得要提供给所有的用户使用,而且只能计算一次.

什么叫计算一次?大部分时候都需要针对不同对象具体计算的,性能改善总得在满足需求的前提下。如果是不针对具体数据/对象的计算那就如上面qiezi说的过载一下类方法好了, 所谓修改类的单子类就是修改类方法。

如果是这样不如添加/修改记录时把计算结果保存到字段里。
0 请登录后投票
   发表时间:2006-09-13  
qiezi 写道

如果是这样不如添加/修改记录时把计算结果保存到字段里。

赞同你这个想法,也正准备这样操作呢
0 请登录后投票
   发表时间:2006-09-13  
qiezi 写道

如果是这样不如添加/修改记录时把计算结果保存到字段里。

赞同你这个想法,也正准备这样操作呢
... 晕了 又是2次一样
0 请登录后投票
   发表时间:2006-09-13  
jack 写道
qiezi 写道

如果是这样不如添加/修改记录时把计算结果保存到字段里。

赞同你这个想法,也正准备这样操作呢
... 晕了 又是2次一样

题外话:
要考虑给rails应用加点简单的防重复提交功能才好啊。。
0 请登录后投票
   发表时间:2006-09-14  
主题说要做数据预处理,如果能在数据创建和插入时就能"一次性预处理"掉的话那就直接用after_create或after_save好了,根本不需要用after_find嘛。

什么时候需要用到after_find呢?很少,比如auditing:记录谁访问过某些敏感数据,但这样的需求是没法事先计算的。如果控制粒度不需要那么细的话就在使用类方法find的时候截获一下。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics