0

在我的应用程序中,我需要在对象集合和单独对象上调用相同的方法。例如,受保用户有许多保险单,可以将其状态从草稿更改为已接受等。对于我的报告,我需要获取有关特定日期的单独用户的所有保单状态的统计信息。但是,如果设置了“显示所有用户的政策”复选框,我需要从整个用户集合中获取数据,迭代每个用户并收集特定日期的政策状态信息。我的问题是 - 这种情况下的最佳做法是什么?我应该把这些方法放在哪里,我可以将它们合二为一吗?

4

1 回答 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 回答