module ObjectidColumns::ActiveRecord::Base
This module gets included into ActiveRecord::Base
when ObjectidColumns
loads. It is just a “trampoline” – the first time you call one of its methods, it includes ObjectidColumns::HasObjectidColumns
into your model, and then re-calls the method. (This looks like infinite recursion, but isn't, because once we include the module, its implementation takes precedence over ours – because we will always be a module earlier on the inheritance chain, since we by definition were included before ObjectidColumns::HasObjectidColumns
.)