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