Это не функция, а то, что я много раз видел неправильно в VBA (и VB6): в вызовы методов добавлены скобки, где это изменит семантику:
Sub Foo()
Dim str As String
str = "Hello"
Bar (str)
Debug.Print str 'prints "Hello" because str is evaluated and a copy is passed
Bar str 'or Call Bar(str)
Debug.Print str 'prints "Hello World"
End Sub
Sub Bar(ByRef param As String)
param = param + " World"
End Sub
В этом случае лучшее решение для меня было, чтобы либо сделать это на прямой SQL, либо использовать функцию Ruby Group_by:
@user.all.group_by{ |u| u.created_at.beginning_of_month }
Я предполагаю, что это будет примерно так:
@user.comments.count(:group => "year(created_at),month(created_at)")
Dry-code, ymmv