extension_module_nameに::が含まれてしまうために例外が発生する(2.0.2で確認。ソースをみると2.1でも起きそう)。とりあえず、initializer/active_record/association_ext.rb を作って以下を記述すれば動作する。
module ActiveRecord
module Associations
module ClassMethods
def create_extension_modules(association_id, block_extension, extensions)
extension_module_name = "#{self.to_s.gsub(/::/, '')}#{association_id.to_s.camelize}AssociationExtension"
silence_warnings do
Object.const_set(extension_module_name, Module.new(&block_extension))
end
Array(extensions).push(extension_module_name.constantize)
end
end
end
end