私のアプリケーションでは、オブジェクトのコレクションと別のオブジェクトでも同じメソッドを呼び出す必要があります。たとえば、被保険者のユーザーは多くの保険証券を持っており、その状態を下書きから承認済みに変更することができます。私のレポートでは、特定の日付の別のユーザーのすべての保険証券の状態に関する統計を取得する必要があります。しかし、チェックボックス「すべてのユーザーのポリシーを表示する」が設定されている場合、ユーザーのコレクション全体からデータを取得し、各ユーザーを繰り返し、特定の日付のポリシー状態情報を収集する必要があります。私の質問は - そのような場合のベストプラクティスは何ですか? そのようなメソッドをどこに置くべきですか、それらを1つに結合できますか?
質問する
372 次
1 に答える
0
クラス メソッドとインスタンス メソッド (同じ名前) の両方を同じモジュール ファイルに配置することで解決策を見つけました。以下の例を参照してください。
require 'active_support/concern'
module SharedMethods
extend ActiveSupport::Concern
module ClassMethods
def get_policies(date)
self.all.each do |entity|
entity.get_policies(date)
end
end
end
#Instance methods
def get_policies(date)
self.find_policy #place required code here
end
end
その後、このモジュールをモデルに含める必要があり、get_policies(date) をクラスとインスタンス メソッドの両方として呼び出すことができます。詳細については、リンクをたどってくださいhttp://alexanderwong.me/post/15697487692/rails-model-mixins-via-included-modules
于 2013-04-07T09:11:22.573 に答える