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?

回答

0

我試着將我的工作示例翻譯成您的案例。

def subjects_chart 
    search = [ 'Subject 1', 'Subject 2', 'Subject 3', 'Subject 4' ] 
    subject_base = Ticket.includes({student: :subjects}) 
    @subject_counter = 
    subject_base.where(subjects: { subject_title: search }). 
    group('tickets.id'). 
    count('subjects.id') 

是這方面的工作?

+0

我還沒有試過這個,但是對於主題圖表,它仍然指定了它應該呈現的內容,而且我使用的不是真實的樣例數據,因此當主題標題更改時圖表將不再工作如果它超過四個,那麼一切都是有限的,我需要改變它。 –

+0

當主體改變時,不需要搜索,按主題分組。我只是想給你一個想法。祝一切順利。 – devanand

+0

不能按我的預期工作,它也只有一個變量,我不能用它作爲圖表 –