Skip to content

Commit de62d13

Browse files
committed
Extract thread view queries to a private method
1 parent 1c24a24 commit de62d13

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

app/controllers/messages_controller.rb

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,7 @@ def index(list_name: nil, yyyymm: nil, q: nil, page: nil)
66
if list_name
77
@list = List.find_by_name list_name
88

9-
@yyyymms = Message.where(list_id: @list).order('yyyymm').pluck(Arel.sql "distinct to_char(published_at, 'YYYYMM') as yyyymm")
10-
@yyyymm = yyyymm || @yyyymms.last
11-
12-
root_query = Message.where(list_id: @list, parent_id: nil).where("to_char(published_at, 'YYYYMM') = ?", @yyyymm).order(:id)
13-
messages = Message.with_recursive(parent_and_children: [root_query, Message.joins('inner join parent_and_children on messages.parent_id = parent_and_children.id')])
14-
.joins('inner join parent_and_children on parent_and_children.id = messages.id')
15-
16-
@messages = compose_tree(messages)
9+
render_threads yyyymm: yyyymm
1710
elsif q
1811
search q, page
1912

@@ -33,6 +26,19 @@ def show(list_name:, list_seq:)
3326

3427
private
3528

29+
def render_threads(yyyymm: nil)
30+
@yyyymms = Message.where(list_id: @list).order('yyyymm').pluck(Arel.sql "distinct to_char(published_at, 'YYYYMM') as yyyymm")
31+
@yyyymm = yyyymm || @yyyymms.last
32+
33+
root_query = Message.where(list_id: @list, parent_id: nil).where("to_char(published_at, 'YYYYMM') = ?", @yyyymm).order(:id)
34+
messages = Message.with_recursive(parent_and_children: [root_query, Message.joins('inner join parent_and_children on messages.parent_id = parent_and_children.id')])
35+
.joins('inner join parent_and_children on parent_and_children.id = messages.id')
36+
37+
@messages = compose_tree(messages)
38+
39+
render :index
40+
end
41+
3642
def get_list_ids(params)
3743
list_ids = []
3844
['ruby-talk', 'ruby-core', 'ruby-list', 'ruby-dev'].each do |name|

0 commit comments

Comments
 (0)