You can use groupupdate gem it will give you this functionality on the database level
That was the easy way
If you want to do it in a way to learn more about rails
you have an obvious block that you use over and over again
{
|item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()
}
you can save it and call it when you need it
date_group = lambda { |item| [item.release_date.try(:strftime, "%B %d, %Y"), item.time_diff_components].join()}
and when you need to use it you can do
Item.tv.coming_soon.group_by(&date_group)
you may want to save this block in some place that you can easily access