0
我有以下查詢,我知道它看起來非常糟糕。改善活動記錄查詢
注:I將他們添加到實例變量,因爲我將使用它們內部highcharts JS庫,以便每個實例變量將代表一列/酒吧/內部highcharts JS線
tickets_controller.rb
def priorities_chart
priority_base = Ticket.includes(:priority)
@high_tickets_counter = priority_base.where(priorities: {name: 'High'}).count
@medium_tickets_counter = priority_base.where(priorities: {name: 'Medium'}).count
@low_tickets_counter = priority_base.where(priorities: {name: 'Low'}).count
end
def statuses_chart
status_base = Ticket.includes({ticket_statuses: :status})
@open_tickets_counter = status_base.where(statuses: {ticket_status: 'Open'}).count
@in_progress_tickets_counter = status_base.where(statuses: {ticket_status: 'In Progress'}).count
@pending_tickets_counter = status_base.where(statuses: {ticket_status: 'Pending'}).count
@solved_tickets_counter = status_base.where(statuses: {ticket_status: 'Solved'}).count
@closed_tickets_counter = status_base.where(statuses: {ticket_status: 'Closed'}).count
end
def subjects_chart
subject_base = Ticket.includes({student: :subjects})
@subject_1_counter = subject_base.where(subjects: {subject_title: 'Subject 1'}).count
@subject_2_counter = subject_base.where(subjects: {subject_title: 'Subject 2'}).count
@subject_3_counter = subject_base.where(subjects: {subject_title: 'Subject 3'}).count
@subject_4_counter = subject_base.where(subjects: {subject_title: 'Subject 4'}).count
@subject_5_counter = subject_base.where(subjects: {subject_title: 'Subject 5'}).count
end
我需要改善這種醜陋的外觀,並實現以下內容:
1-如果我有另一個主題有不同名稱或超過10個主題,我需要一個查詢來處理這個問題,而不指定主題標題因爲我在這裏做。
2-是否有更好的方式來編寫priority_chart和statuses_chart?
我還沒有試過這個,但是對於主題圖表,它仍然指定了它應該呈現的內容,而且我使用的不是真實的樣例數據,因此當主題標題更改時圖表將不再工作如果它超過四個,那麼一切都是有限的,我需要改變它。 –
當主體改變時,不需要搜索,按主題分組。我只是想給你一個想法。祝一切順利。 – devanand
不能按我的預期工作,它也只有一個變量,我不能用它作爲圖表 –