モジュール下のモデルクラスで関連の拡張ができない
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
Keyword(s):
References:[Ruby on Rails]