Яuбy / Говнокод #3675 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
if html_content.product_id == 11 || html_content.product_id == 8 || html_content.product_id == 15 || html_content.product_id == 20 
  @terms_and_conditions = Page.find(212).contents
else 
  @terms_and_conditions = Page.find(213).contents  
end

Запостил: paveldruzyak paveldruzyak, (Updated )

Комментарии (8) RSS

  • даже не знаю как такое можно отрефакторить, всё равно получается страшно - какая-то нелепая задача тут решается
    Ответить
  • Нормально рефакторится если знать чего оно должно делать 😉
    А вот эта проверка идентификатора продукта вобще по всему коду разбросана 🙂
    Ответить
  • Только у меня одного такое чувство, что это какой-то похапе-магазинчик портировали?
    Ответить
  • хорошее название переменной для продукта. html_content.
    рефакторится где то так

    def terms_and_conditions(product)
    case product.terms_type
    when 'type1'
    Page.find(212).contents
    when 'type2'
    Page.find(213).contents
    else
    'invalid terms'
    end
    end
    <%= terms_and_conditions(product) %>
    смена логики на использование terms_type вместо id.
    Ответить
    • def terms_and_conditions
      Page.terms_and_conditions medical_details_required?
      end

      def Page.terms_and_conditions(medical_detail s_required?)
      medical_details_required? ? Page.find(212) : Page.find(213)
      end
      Ответить
      • я не в курсе бизнес логики проекта, так что можно и так. особенно если точно известно что типов всего два.
        Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8