How to get value of custom field of another issue knowing only issue_id?
msneet opened this issue · 3 comments
Создал вычисляемое поле для timelog, оно должно быть равно кастомному полю из задачи, к которой относится этот timelog. Объект time_entry имеет свойство issue_id - указывает на номер задачи. Вопрос: как, зная только issue_id, получить значение кастомного поля из задачи с номером issue_id (прямого указателя на объект issue нет) ?
Ранее поиск нужной задачи делал так:
result = Project.find('ProjectIdentifier').issues.select { |child| child.custom_field_value(CF_ID) == CF_VALUE }.first.try(:custom_field_value,CF2_ID)
Но это для конкретного проекта. В данном же случае имя проекта неизвестно. Подозреваю, что есть глобальный объект Issues - коллекция всех задач, в котором уже можно выполнить detect или select { |i| i.id == issue_id}, но пока точно не знаю. Подскажите пожалуйста
Пока использую вот такой подход, он работает:
if (self.issue_id.present?) && (self.project_id.present?)
Project.find(self.project_id).issues.where(id: self.issue_id).first.try(:custom_field_value, 355).to_f
end
Но он мне кажется не очень изящным. Нет ли прямого указания из объекта time_entry сразу на объект issue?
Нет ли прямого указания из объекта time_entry сразу на объект issue?
Есть такая связь self.issue.try(:custom_field_value, 355).to_f
Проверил. Работает. Спасибо!