Zab*_*bba 18 activerecord ruby-on-rails-3
UPDATE
我错误地检查了edgerails指南而不是当前正确的Rails 3指南(没有提到after_initialize).不确定为什么edgerails指南是"不正确的" - 我认为edgerails指南应该是最新的最新指南?
我要离开这个问题,以防万一有人来寻找同样的"问题".
宏观式呼叫after_initialize是要走的路.
应该after_initialize用作方法还是宏观式调用?
这有效,但给出了弃用警告:
def after_initialize
logger.info "Called after_initialize"
end
Run Code Online (Sandbox Code Playgroud)
弃用警告:不推荐使用Base#after_initialize,请改用Base.after_initialize:方法.
这有效,并且没有警告:
after_initialize :do_this_after_initialize
def do_this_after_initialize
logger.info "Called after_initialize"
end
Run Code Online (Sandbox Code Playgroud)
但活动记录验证和回调指南在10.4 after_initialize和after_find说:
...如果您尝试使用宏样式类方法注册after_initialize或after_find,它们将被忽略.此行为是由于性能原因,因为after_initialize和after_find都将为数据库中找到的每条记录调用,这大大减慢了查询...
那么这意味着宏方式的使用效率低于方法式方式?
(我猜指南错了,'cos代码为王:D)
一个提交这里从2011年1月28日表明,正确的方法是仍然使用宏风格的通话,而不是一个def after_initialize.
| 归档时间: |
|
| 查看次数: |
26638 次 |
| 最近记录: |