Rails アプリで定義されたモデル呼び出し構成を拡張したいと考えていました。いくつかのアーキテクチャ上の理由から、gem で拡張できれば素晴らしいことです。
しかし、構成クラスを呼び出すと、gem foo.rb ファイルで次のようになります。
Configuration.class_eval do ... end
このエラーが返されます:
configuration: undefined method 'config' for nil:NilClass (NoMethodError)
そして、私がこれを試した場合:
class Configuration
TEST = [:foo, :foo2].freeze
end
Rails アプリで定義されたアクティブ レコード クラスにアクセスできなくなりました。
gem でいくつかの Rails クラスをオーバーロードする方法はありますか?
編集:この作品のようなもの:)
module m
module ConfigurationExtension
extend ActiveSupport::Concern
included do
CONSTAZ = [:foo].freeze
end
module ClassMethods
def foo1
"foo1"
end
end
module InstanceMethods
def foo2
"foo2"
end
end
end
end
require 'm/mailtie.rb' if defined?(Rails)
私の railtie ファイル モジュール m class mRailtie < ::Rails::Railtie config.after_initialize do ::Configuration.send(:include, ConfigurationExtension) end end end