1. Ruby / Говнокод #6567

    −102

    1. 1
    Task.joins(:owners).where(:users => {:id => current_user}).order("tasks.weight DESC").limit(1).first

    Запостил: intale, 06 Мая 2011

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

    • current_user.own_tasks.order("tasks.weig ht DESC").first ?
      Ответить
    • Сама фишка это говна была в limit(1).first: limit(1) выдаёт массив из 1го элемента, а first выдаёт запись класса Task.
      И факт в том, что limit(1) тут вобще не нужен

      И кстати, "owners" здесь polimorphic association. 8====Э
      Ответить
      • Кстати применение limit 1 - оправдано - тогда между от бд в приложение вернется 1 запись, тогда как без лимит вернутся все записи соответствующие критерию а уже потом вы выбереть первую из них.
        Ответить
        • В rails 3 first не добавляет limit к запросу?
          Ответить
        • Проверил:
          > Task.first
          Task Load (0.2ms) SELECT `tasks`.* FROM `tasks` LIMIT 1

          О чём вы ведёте речь?
          Ответить
    • автор поста походу из тех труЪ прогеров, которые были взрощены на всевозможных фреймворках и парадигмах, в глаза не видевших "чистого" sql запроса и не способных шевелить мозгом самостоятельно
      Ответить
      • в этом коде присутствует тупизм но не полное говно
        peredozo
        я б ушел с проекта если б в нем 60% выборок был "чистый sql", обычно в таких проектах пахнет чем угодно только не драем
        ты похоже противник фреймворков :) тебе лучше налаживать тонну тру кода?
        Ответить
        • Нет, я обожаю рельсы и activerecord. Просто нужно понимать как это все устроено и как это работает. Я работал с людьми, которые слепо следуют парадигме и которые даже не представляли, что их код рождал немереное количество лишних запросов.
          Ответить
          • согласен! например n+1 запрос вечная проблема
            Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

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