2017-06-12 51 views
0

我使用Groupdate Gem根据日期来过滤我的对象,但它似乎像调用该函数的唯一办法就是像这样:使用可变

@foo = Model.group_by_hour(:created_at).count 
@foo = Model.group_by_month(:created_at).count 
@foo = Model.group_by_day(:created_at).count 
... 

理想情况下,我想以便能够使用变量,以便用户可以选择是按月份,年份,日期等筛选。

是否有将变量插入此函数以允许更灵活的代码的方法?

喜欢的东西:

@foo = Model."group_by_#{ time_variable }"(:created_at).count 

回答

1

像?

@foo = Model.send("group_by_#{time_variable}", :created_at).count 

或者是创业板支持以下功能:

@foo = Model.group_by(time_variable => :created_at).count 
+0

我的第一个选项去!谢谢。没有想到包含逗号分隔的':created_at' –