Many times we come across such situations where we need to group records, like when we want to display grouped messages, email, alerts .etc based on date or time. Here is the simple code which provides a significant use of group_by method. Controller Part class MessagesController < ApplicationController def index @message = Message .all #Retrives all messages and divides into two groups todays messages and other messages @grouped_messages = @message .group_by{ |t| t.created_at.to_date == DateTime .now.to_date } if @grouped_messages [ false ].present? #Create month wise groups of messages @month_wise_sorted_alerts = @grouped_messages [ false ].group_by{ |t| t.created_at.month} end end end @message .group_by{ |t| t.created_at.to_date == DateTime .now.to_date } The above line return us the messages in Ordered Hash with two keys true and false on which the messages which are of today's date will be valu
Comments
Post a Comment