Redmine key/value (ключ/значение) и обычный list (список)

Тип custom field Redmine ключ/значение (key/value) очень похож на обычный список (list). Есть одна принципиальная разница.

List (Список)

В случае с обычным списком  (list), если пользователь в задаче выбрал значение из списка и сохранил, то это значение так и остается сохраненным в задаче. Если в исходном списке значение переименовывается, то в задаче оно остается неизменным. При редактировании задачи можно сменить значение типа списка.

Подозреваю, что в случае с обычным списком Redmine создает текстовое поле для хранения выбранного значения, а не ссылку на запись в таблице один-ко-многим.

Чтобы вычитать значение из списка используется следующий код. Предположим, что в списке есть следующие значения: ‘WEB’, ‘WAP’. ‘Unspecified’.

values = custom_field_value(CUSTOM_FIELD_ID)  || [];
val = values[0].to_s; # Read value with ID = 0 from array
if (values.include?('WEB'))
  values[1].to_s;
else
 values[2].to_s;
end 

case 
 when values.include?('WEB') 
 1
 when values.include?('WAP') && values.include?('WEB')
 2
else
 3
end

Key/value list (Ключ/значение)

Если для трекера испольовалось поле с типом key/value, то при изменении значения в списке происходит изменение значений и во всех задачах, где это значение использовалось ранее. Это классический вариант табоички один ко многим. В таблице со записями списка сменили значение и оно везде изменилось.

Например

Был список со следующими занчениями:

  • Значение1
  • Значение2

При создании задачи из списка было выбрано Значение1.

Затем в исходном списке переименовали:

  • Значение1 -> ЗначениеОдин
  • Значение2 -> ЗначениеДва

В случае с обычным списком в задаче будет по-прежнему отображаться Значение1. В случае со списком «key/value list» во всех задачах произойдет замена на ЗначениеОдин.

Spread the love
Запись опубликована в рубрике IT рецепты, IT решения для бизнеса с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *