diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 17d90ae..993018a 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -32,7 +32,7 @@ def show(list_name:, list_seq:) # If this is a turbo frame request, just render the message return if turbo_frame_request? - render_threads yyyymm: @message.published_at.strftime('%Y%m') + render_threads yyyymm: @message.yyyymm end private @@ -68,9 +68,9 @@ def render_threads(yyyymm: nil, q: nil) if q root_query.where!('body %> ?', q) else - @yyyymms = Message.where(list_id: @list, parent_id: nil).order('yyyymm').pluck(Arel.sql "distinct to_char(published_at, 'YYYYMM') as yyyymm") + @yyyymms = Message.distinct.where(list_id: @list, parent_id: nil).order('yyyymm').pluck('yyyymm') @yyyymm = yyyymm || @yyyymms.last - root_query.where!("to_char(published_at, 'YYYYMM') = ?", @yyyymm) + root_query.where!(yyyymm: @yyyymm) end messages = Message.with_recursive(parent_and_children: [root_query, Message.joins('inner join parent_and_children on messages.parent_id = parent_and_children.id')]) @@ -79,7 +79,7 @@ def render_threads(yyyymm: nil, q: nil) @messages = compose_tree(messages) if q - @yyyymms = @messages.map { it.published_at.strftime('%Y%m') }.uniq + @yyyymms = @messages.map { it.yyyymm }.uniq @yyyymm = @yyyymms.last end