У меня есть следующие запросы, я знаю, что это выглядит очень плохо.Улучшение запросов активной записи
Примечание: Я добавил их к переменным экземпляра, потому что я буду использовать их внутри 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
не работает, как я ожидал, также он имеет только одну переменную, я не могу использовать ее для диаграммы –