#ruby-on-rails #ruby
Вопрос:
У нас есть следующий фрагмент кода, интегрированный во многие наши страницы:
-if test.passed .label.label-success passed -else .label.label-danger failed
Я хотел бы удалить это дублирование кода. Как лучше всего это сделать? Частичное в tests_controller
, или функция, которая возвращает соответствующий тег content_tag в помощнике/самой модели? Или, может быть, каким-то другим способом, с которым я не знаком?
Спасибо за вашу помощь
Комментарии:
1. Я согласен, что частичные и вспомогательные методы-это ваши варианты. Какой вариант предпочесть, зависит от того, насколько сложна структура HTML и логика. В вашем простом примере я бы использовал вспомогательный метод. Но это, безусловно, самоуверенный ответ.
2. Я думаю, что это очень ориентированный на мнение вопрос. Лично я бы просто сделал метод, который можно вызвать, и вернул тег. Но я думаю, что оба способа похожи.
test.passed?
или что-то в этом роде.3. Я понимаю, я думал, что между программистами Rails может быть какой-то консенсус по этому вопросу
4. @fynsta Я думаю, что единственный консенсус, который вы найдете, заключается в том, что включение генерации HTML в модель не одобряется.