В моем контроллере я сделал:
@startdates = ActiveRecord::Base.connection.select_rows("SELECT DISTINCT MONTH(start_date), YEAR(start_date) FROM schedules WHERE event_id IN (#{@events.map{|n| n.id}.join(',')}) ORDER BY start_date ASC;")
и, на мой взгляд:
<%= select(:event, :startdate, @startdates.map{|s| ["#{t("date.month_names")[s[0].to_i]} #{s[1]}", "#{s[1]}-#{s[0]}"]}, {:selected => @startdate.to_s, :include_blank => "All"}) %>