0

不足している一連のレポートがあり/libます。これらは非常に膨大になったため、特にレポートに関連するヘルパーまたはその他の「デコレータ スタイル」のメソッドとして数えられる多くのメソッドを作成しました。

これらの追加のメソッドはレポートにあり、次のようになります。

class report
  def get_latest_credential_updated_date
    credentials.map(&:updated_at).compact.max
  end

  def initialize 
    # set up stuff
  end
end
  1. モジュールをロードする方法、またはレポートライブラリがロードされたときにモデルにコードを挿入する方法はありますか:

    class Loan < ActiveRecord::Base
      def get_latest_credential_updated_date
        credentials.map(&:updated_at).compact.max
      end
    end
    
  2. このアーキテクチャを表現するためのより良いパターンはありますか?

4

1 に答える 1

1

class_eval を使用して、次のような「注入ヘルパー」を作成できます。

def inject_to(class_name, &block)
  eval "#{class_name.name}.class_eval &block"
end

inject_to Loan do
 def get_latest_credential_updated_date
   credentials.map(&:updated_at).compact.max
 end
end
于 2012-11-05T19:17:40.683 に答える