【发布时间】:2011-06-08 13:43:50
【问题描述】:
我正在尝试为给定的模型名称数组动态生成一些计数方法,然后我可以在视图/帮助器中使用这些方法:
# create dynamic count methods for each model we want
['model', 'other_model', 'next_model'].each do |name|
class_eval{
"def total_#{name.underscore}s_count
total_#{name.underscore}s_count ||= #{name.camelcase}.all.count
end"
}
end
不过,我有几个问题:
- 如果我希望能够在视图中调用这些方法,这段代码应该放在哪里?
- 将这些方法添加到哪个类?例如,我不确定它们是否属于 User 等类,因为它们是用于一堆模型的,所以我将如何调用它们。
- 有更好的方法吗?
【问题讨论】:
-
total_model_count 比 Model.count 有什么优势?
-
将直接模型调用排除在我的视图之外
标签: ruby-on-rails ruby ruby-on-rails-3 metaprogramming dynamically-generated