zoonman
@zoonman
⋆⋆⋆⋆⋆

Чем заменить тернарный оператор?

Есть говнокод вида:
margin = @supply.supplier.margin ? @supply.supplier.margin : 0

Если есть какой-то общий подход, например проверить наличие поставщика, наценки и вернуть 0 в случае их отсутствия, подскажите. Затупляю в общем.
  • Вопрос задан
  • 2626 просмотров
Решения вопроса 2
viktorvsk
@viktorvsk
@supply.supplier.margin || 0
Даст не то, что вы хотите, когда margin будет равняться "" (что будет, если меняете через форму на пустое значение)

Для этого в Rails сделали метод
presence
margin = @supply.supplier.margin.presence || 0

Что эквивалентно:
margin = @supply.supplier.margin.present? ? @supply.supplier.margin : 0


present? лучше проверяет пустые значения, чем неявное приведение типов
Ответ написан
anyd3v
@anyd3v
margin = @supply.supplier.margin || 0
как то так
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы