【发布时间】:2013-12-20 07:53:06
【问题描述】:
我有以下疑问,我知道它看起来很糟糕。
注意:我将它们添加到实例变量中,因为我将在 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-有没有更好的写priorities_chart和status_chart的方法?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-3.2