• Менять изучаемые технологии?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Писать систему под интернет-магазин - это минимум 50% бекэнда, это сложно (если брать нормальную систему), и, следовательно, для этого плохо подходит один фулстек. Тут желательно одного чистого бекэндщика.
    А значит, чистый бекэндщик нужен уже для таких работ.
    Для реально сложных проектов нужны в обязательном порядке чистые беэндщики независимо от выбранного ЯП. И очень часто в количестве больше одного.
    Ответ написан
    Комментировать
  • Проектирование базы данных сайта. Как создать несколько записей с одинаковыми данными?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Отдельно таблица с моделю девайса + какие-то уникальные поля типа производитель, прочее.
    Вторая таблица с типами характеристики: размер экрана, количество памяти, прочее. Без данных, просто названия характеристики.
    Третья таблица с id модели, id характеристики и уже самим значением этой характеристики. Также тут нужно указать какой-то id набора (подойдёт даже просто 1, 2, и т.д.). По желанию можно наборы также вынести в отдельную таблицу, как и модели.

    Таким образом у одной модели будет несколько наборов характеристик. Но сама модель доступна только по одному адресу.
    Ответ написан
    Комментировать
  • Как исправить внешний вид превью поста?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Попробуйте изменить размер окна, увидите, что Масонри отрабатывает нормально (то есть приводит все в правильный вид). Отсюда я делаю вывод, что у вас первоначальный вызов масонри сделать не корректно - он вызывается ДО того, как были загружены превью видяшек, следовательно и оценить их размер он не может.

    Я бы, наверное, сделал так:
    задаем блокам с видяхами одинаковую фиксированную высоту, оставляем запуск Масонри как он есть, добавляем обработчик onload на превьюхи видео, после их загрузки переинициализируем Масонри, который уже подправит высоту ранее фиксированных блоков.
    Но думаю что есть и более корректный вариант. Просто не сталкивался с Масонри, потому первое, что пришло в голову.
    Ответ написан
  • Меню имеет два состояния. Во втором больше пунктов и иной порядок. Куда копать?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    JS, Flex.
    Можно еще немного поизвращаться и поиграть с
    .menu_in ul {
      column-count: 4;
    }

    Тогда визуально меню будет таким, как у вас на картинке, но при этом в коде направление пунктов будет сверху вниз по колонкам.
    Минус - нужно следить на шириной пунктов меню, прочее. Но попробовать стоит, возможно такой вариант вас устроит. Зато с изменением порядка не нужно играться.
    Ну и в свернутом виде просто "пропускать" те пункты, которые должны быть невидимыми.
    Ответ написан
    Комментировать
  • HTML CSS JS, как лучше сделать, чтобы fading закрывался при кнопке "Назад" (в браузере)?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    window.addEventListener('popstate', function(event) {
      if (ваше окно-карусель открыто) {
        event.preventDefault();
        // закрыть окно
      }
    });
    Ответ написан
    Комментировать
  • Как задать очередность анимации элемента?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    50% и 100% поменять на 25% и 50% соответственно, а также добавить ещё строки с процентным уровнем и вашими стилями.

    Что-то типа такого:
    0% {stroke-dashoffset: 0;}
    25% {stroke-dashoffset:600;}
    50% {stroke-dashoffset: 0; color: #fff;}
    100% {color: #000;}
    Ответ написан
    1 комментарий
  • Как сверстать адаптивно эти блоки?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Первые 3 без особых проблем делаются порезкой фоновой картинки на части.
    Вторую вообще в мобильной версии оставить без стрелочек, не нужны они на узкой экране.

    А вот с облачком, то тут действительно должен думать дизайнер как сделать так, чтоб конкретно это расположение чувачка и облачка смотрелось в размере 300 пикселей по ширине. А так как это практически нереально (будет очень мелко и все детали потеряются), то дизайнер должен придумать как чувачка и облако "разделить" и отображать немного по другому их компоновку в мобильной версии (на узких экранах).
    Ответ написан
    Комментировать
  • Как настроить переход по якорям с других страниц?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Попробуйте в этом направлении посмотреть. Вариант lebonnet тоже имеет право на жизнь, но он не отменяет событие системного скролла.
    $(document).ready(function(){
      $(document).on('scroll', function(event){
        var target = window.location.hash;
        if (typeof hash != 'undefined' && hash != '') {
          event.stopPropogation(); // or event.preventDefault();
          ... // your function from scroll
        }
      });
    });
    Ответ написан
    Комментировать
  • Как сделать одиннаковое расстояние между ссылками в меню?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    В фотошопе у вас тексты меняться особо и не должны, это шаблон. Главное нарисовать его так, чтоб верстальщик потом мог четко понять, что между пунктами меню нужно одинаковое растояние не зависимо от длины текста в пункте меню.

    А сама реализация этого на CSS, на мой взгляд, лучше всего будет на flex, с указание выравнивания по ширине.
    Но можно попробовать и через inline-block и снова таки выравнивание по ширине, примерно вот так:

    ul {
      text-align: justify;
    }
    
    ul::after {
      content: "";
      display: inline-block;
      width: 100%;
    }
    
    li {
      display: inline-block;
    }
    Ответ написан
    Комментировать
  • Как в Ruby on Rails сделать откаты добавления при неудачном случае у его связанных?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Понимаю, что вопрос был задан давно, и возможно ответ уже найден, но тут он не был озвучен, потому...

    Ответ fshp правильный, но довольно сложный, учитывая имеющиеся в рельсах альтернативы.
    В конкретно указанном автором случае есть более корректный вариант защиты/ролбека.

    def create
      subs = Subscriber.new(...)
      subs.address.new()
      subs.save
    end


    -- UPDATE --
    Ошибся с методом создания наследуемых моделей.
    Корректно это будет так:
    def create
      subs = Subscriber.new(...)
      subs.build_address
      subs.save
    end

    Либо subs.addresses.build, если адресов у подписчика много (связь has_many)
    -- end update --

    В данном случае создается экземпляр модели подписчика, дальше создается эксемпляр адреса, принадлежащего модели подписчика, и потом все это пытается сохраниться (записаться в БД). Если что-то идет не так, то save вернет false, при этом сам позаботиться о транзакциях и ролбеках.
    Ответ написан
    5 комментариев
  • Как отфильтровать массив?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    favorite_rooms_ids = cookies[:favorite_room]&.split('/')
    favorite_rooms = Room.where(id: favorite_rooms_ids) if favorite_rooms_ids


    Ну и перестаньте использовать кемелкейс-стиль для именования переменных.
    Почитайте стайл-гайд по руби и рельсам. Кемелкейс используется для именования классов/модулей, но не для переменных.
    И собаку в имени переменной использовать нужно только в случае, если эта переменная будет переменной класса, а не переменной метода (то есть будет использоваться еще где-то за пределами конкретного метода). В вашем случае переменная используется тут же (в этом же методе) и не нужна более негде. Значит и именуйте ее корректно.
    Ответ написан
    Комментировать
  • Почему FireFox криво отображает отступ?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Нечто типа такого должно помочь
    $(document).ready(function () {
      window.scrollTo(0,0);
    });
    Ответ написан
    1 комментарий
  • Не работает !important в sass, что делать?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    (min-width : 480px)
    Исправь на max-width.
    У тебя этот блок классов перебивает все, что идут выше
    Ответ написан
    1 комментарий
  • Не применяется подключенный через CSS шрифт?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Лицензионные шрифты белкой не обрабатываются нормально. То есть они остаются заблокированными для веба.
    Используйте другой сервис-генератор, к примеру, как в совете выше.
    Ответ написан
  • Существуют ли "CMS" для админок(редактирования баз данных)?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    admirer.pop
    Только придётся дописать под себя управление ограничениями и прочее.
    Но зато качественный код и удобная работа с таблицами бд.
    Ответ написан
    Комментировать
  • При добавлении float:left; ссылка не выравнивается по середине. Как от этого избавится?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    a {
    display: inline-block;
    }
    У родителя ширину 100% и равнение текста по центру.
    И никаких флоатов.
    Либо флекс на родителя. Но это чуть сложнее.
    Ответ написан
    Комментировать
  • Для скролла одностраничника, как добавить якорь # в url?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    $('.mmenu a').click(function (e) {
    e.preventDefault();
    ...
    }
    Правда якорь таким образом не добавится. Это придётся делать вручную.
    Зато точно не будет проблем с плавностью из-за клика по ссылке.
    Ответ написан
    Комментировать
  • Почему не отправляет значения select и checkbox через jqery.serialize()?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    Сериалайз может пропускать поля со свойством display: none.
    Остальное должен жевать без проблем, ибо сам его использовал без какой-либо кастомизации.
    Ответ написан
    Комментировать
  • Как правильно сделать поэтапный each?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    В любом случае, 1000 за раз или 50 штук, все равно в вашем случае append должен быть один раз за пределами цикла-перебора.
    В цикле же просто собирать все в одну строку конкатенацией либо в массив строк, и в append'е делать join.
    Это существенно разгрузит браузер.
    Ответ написан
    Комментировать
  • Как при появлении элемента с классом отследить этот класс и изменить свойства другого блока (класса)?

    @Givandos
    верстка, пыха (прощай, родная), рельсы (вы кто?)
    https://developer.mozilla.org/ru/docs/Web/API/Muta...
    вот то что нужно.
    Вешаете на body и ловите появление/изменение кого вам потребуется.
    Примерно так и работает Ангулар и схожие с ним.
    Ответ написан
    Комментировать