# Manage regions, mostly get stats out of them class RegionsController < InheritedResources::Base def stats @region_events = Event.joins(:related_region).group(:name) .order('count(name) desc').count :name @city_events = Event.group(:city).having('count(city) > 3') .order('count(city) desc').count :city @year_events = Event.group(year_grouping).count @month_events = Event.group(year_grouping, month_grouping).count end private def year_grouping if %w(Mysql2 MySQL PostgreSQL).include? Event.connection.adapter_name 'extract(year from start_time)' elsif Event.connection.adapter_name == 'SQLite' 'strftime("%Y", start_time)' end end def month_grouping if %w(Mysql2 MySQL PostgreSQL).include? Event.connection.adapter_name 'extract(month from start_time)' elsif Event.connection.adapter_name == 'SQLite' 'strftime("%m", start_time)' end end end