Я бы добавил метод todo model, который возвращает список элементов к дате исполнения:
#models/todo.rb
def self.get_todo_by_due(due_date)
return Todo.where(:due => due_date)
end
А затем измените представление:
<%distinct_due_dates = Todo.select("DISTINCT(due)") %>
<%distinct_due_dates.each do |item|%>
<% due_date = item.due %>
<h1><%= due_date %></h1>
<% get_todo_by_due(due_date).each do |todo|%>
<br />
<%= todo.description %><b><%= todo.list %></b>
<br />
<% end%>
<% end%>