callbacks,如:before_save, after_save。 我觉得里面应该不要写业务代码,而应该只写与数据库表相关的一些代码。如:字段format等等。
before_save
after_save
format
请教各位,以各位的经验来看,callbacks里面适合写哪些代码?
呼叫:@hysios @huacnlee @ywencn @lgn21st @Rei @hisea
无人问津。。。
比如你要保存订单,然后你有单价、数量,那总价就可以放在 before_save 里,让他自己算一下,然后存进去。 我举的是最简单的例子。。 要当心 before_save 被滥用,刚开始觉得爽,业务复杂后很容易被误伤
@ywencn 现在就是业务负责了,before_save 被滥用了,所以想重构下
基于我对 Callback 的理解,我认为 Callback 的初衷,就是为了让你用优雅的方式去序列化组织你的业务逻辑。Callback 当然能用于写业务代码。
Callback 不仅仅用于 ActiveRecord 对象上,在 Controller 中也有用到,同样的设计在其他很多地方都可以用到。
这是个权衡,如果业务逻辑比较多,callback 确实比较容易出现陷阱,改为显示调用会显得业务逻辑比较清晰
这个权衡是需要经验的
@tumayun callback 最好只用来处理数据的某些计算,不赞成用来处理业务逻辑,只是数据层本身逻辑处理会比较好
感谢@hysios @lgn21st
@lgn21st @hysios DCI and Rails 你们了解么? http://ruby-china.org/topics/3460
这是靠实践积累的,在你需要的时候用它。 http://rails-bestpractices.com/posts/695-use-after_commit
这种方式我觉得不错,也提到了 DCI
http://blog.xdite.net/posts/2012/01/09/remove-your-after-save-from-model/