问题
In several places, I've seen claims that overriding ActiveRecord::Base.initialize is wrong because it might not always be called:
How can I set default values in ActiveRecord?
http://blog.dalethatcher.com/2008/03/rails-dont-override-initialize-on.html
With never versions of ActiveRecord (3.0+), is this still true? If so, what specifically are the circumstances under which it is not called when one might expect that it would be?
回答1:
It's not that it won't be called, it's that there already is an initialize, in ActiveRecord::Base.
Could you call super? Probably, maybe, in general. Across Rails versions, including future ones? Reply hazy try again. Cannot predict now. Ask again later. Magic 8-Ball isn't convinced.
There's an initialize callback so you don't need to, and aren't tempted.
来源:https://stackoverflow.com/questions/8804868/why-is-overriding-activerecordbase-initialize-wrong