Задать вопрос
  • Можно ли сделать замену одной переменной разными значениями из массива при выводе текста?

    viktorvsk
    @viktorvsk
    Что значит, пишете на фреймворке?
    Каждый в наши дни пишет на фреймворки. Просто некоторые под фреймворком подразумевают вордпресс, некоторые симфони, некоторые модули php, некоторые обертку над cgi и так далее.

    Вы не указали вообще никаких данных. В простейшем виде вы можете делать что-то типа {{item->items_photos.first()}}, а на выводе все, что обернуто в {{}} передават eval().
    Ответ написан
    Комментировать
  • Как правильно в модели rails убирать юзеров (с галочкой отключен)?

    viktorvsk
    @viktorvsk
    class User < ActiveRecord::Base
    default_scope ->{ where(access: true) }
    ...
    end


    И все юзеры будут по-умолчанию выбираться только с true
    А если нужны будут все, то:
    User.unscoped

    Но вообще, дефолт скоуп не очень хорошая штука. Лучше сделать обычный named scope:
    class User < ActiveRecord::Base
    scope :with_access, -> { where(access: true) }
    ...
    end

    И вызывать как:
    User.with_access
    Ответ написан
    Комментировать
  • Изучать ли сразу TDD при изучении рельсов?

    viktorvsk
    @viktorvsk
    Я на первых порах забивал, потому что заказчики не понимали, зачем платить за тесты, ты ж и так должен писать "качественный код"
    Сейчас есть полунаписанный проект и только взялись за тесты. И понимаем, что со скрипом идет - когда не начинаешь вначале.

    Наверное, нужно смотреть, ,и если действительно не доставляет удовольствия, то лучше пока отложить и вернуться тогда, когда поймете (на своем опыте), что они дейсвительно экономят время, а не только его тратят.
    Ответ написан
  • Расскажите про Ваш путь rails-разработчика. С чего начинали?

    viktorvsk
    @viktorvsk
    railstutorial.ru/chapters/4_0/beginning
    Начинаете с фреймворка (рельсы), а не языка (руби).
    Чаще гуглите. Старайтесь читать только англоязычную информацию.
    Используйте линукс (или мак).

    В отличии от распространенного подхода, сначала делаете, что б работало:
    - с помощью ORM создаете логику - потом разбираетесь, как работает SQL
    - с помощью гемов реализуете типичную инфраструктуру (аутентификация, авторизация, комментарии, эмейл-рассылку) - после разбираетесь с тем, как же оно работает
    - сначала делаете прототип, который работает (описываете бизнес-логику), потом ищите узкие места, которые нужно оптимизировать (если таковые есть).

    Не велосипедьте:
    - велосипеды изобретаете только в редких случаях (по остальному гуглите best-practices, на начальном этапе >80% задач, с которым сталкнетесь, уже давно решены множество раз и очень элегантным способом), а если и написали - то делитесь с сообществом, организовав его в гем.

    Ресурсы
    - Перед тем, как приступить к решению задачи, сначали ищите решение здесь: https://www.ruby-toolbox.com/
    - Пробуйте по-максимуму использовать специализированные ресурсы (rubular, heroku), которые облегчат жизнь на каком-то этапе.
    - Сразу же привыкайте к таким вещам, как firebug, byebug, pry, Ap

    P.S.
    Итак, наверное, многих смутит подход отказаться от велосипедов, пользоваться преимуществами коммьюнити, делают вещи, которые just work и не понимать сути некоторых из них на начальном этапе.

    Так вот, хоть это и "обидно" не знать чего-то (хотя, когда знаешь, чего не знаешь - узнать это куда легче :) ), ведь кто-то может спросить тебя "Чувак! Ты сделал ЭТО, взял за ЭТО деньги, и вот скажи, как ты это сделал? Как оно работает? А что будет если Х ? А есть сделать Y? А в ситуации Z?"

    И тут понимаешь, что ты всего это не знаешь, не продумывал, но что-то уже есть, работает, деньги заплачены, фидбек получен. И тут наверное, должно стать бы стыдно... Но кроме этого тезиса я не вижу причин отказываться от предложенного подхода.

    Давайте предсатвим простейшую ситуацию и попробуем взвесить плюсы и минусы (наверное, этот вопрос будет многим интересен еще долго время)

    Вы только решили начать изучать Ruby on Rails. И тут подвернулся знакомый, которому нужен простейший сайт-визитка с простой админкой.

    Конечно, вы можете потратить неделю или месяц на то, что б понять, как сделать простейшую аутентификацию с bcrypt, как настроить rvm, unicorn, nginx на vps и наклепать кучу вьюх для редактирования чего-то там

    А можете поставить devise, active admin и high voltage, получить деньги и увидеть работающее решение, которое на 100% удовлетворяет требованиям заказчика. Хотя вы нифига и не понимаете, как оно все вместе работает.

    Какие плюсы?
    - Возможность делать реальную работу и получать реальные деньги почти сразу
    - Возможность быстро сделать то, что понравится самому, вместо того, что б перепилить 10 велосипедов, которые уже достали
    - Возможность заниматься бизнес-логикой вместо инфраструктуры
    - Использование опыта сообщества
    - Если вы стараетесь "меньше разбираться сам в готовых решения", вы рискуете не изобрести очередной велосипед, а делать все по best-practice (envrionments, deployment, svc, asset pipeline)
    ...

    Какие минусы?
    - Действительно, в тот момент, когда выйдет первый более-менее продакшн, вы не станете Йодой по экранированию кавычек или Мастером iconv.
    - У вас, скорей всего, не будет времени на изобретение нового "MVC" фреймворка
    - Врядли вы захотите "подарить миру еще одну CMS"
    - Вы не прочтете кучу учебников "руби для чайников", потому что к концу первого псевдо-проекта поймете, как мало там пользы для начала
    - И, конечно, если вы пришли сюда, "потому что айтишникам много платят", то дальше, как это называют, джуниора, не уйдете.

    А разобраться, как оно устроено внутри - можно всегда, пока не подписали никаких обязующих договоров и NDA :) хотя, и после можно.

    Точно так же, как плоха преждевременная оптимизация. Точно так же очень часто бывает плохо "преждевременно в чем-то разобраться".

    В основном нужно не "круто шарить". Не знать синтаксис каждой команды языка и популярных библиотек напамять. Не помнить досконально, что делает тот или иной кусок кода. А понимать, где какое решение лучше применить и почему. А так же, по какому пути идти в определенной ситуации, что б найти выход. И зубреж фундаментальных основ, к сожалению, не так часто здесь помогает.

    Или есть еще минусы? Кстати, заметьте, что никто не говорил, "нужно ли вообще делать Х". Спрашивалось, "что лучше делать вначале?".
    Ответ написан
    9 комментариев
  • Можно ли изменять код в spree,synergy?

    viktorvsk
    @viktorvsk
    Посмотреть можно и нужно
    Редактировать можно, но не нужно
    Код лучше переопределять или наследовать
    Ответ написан
  • Как обеспечить корректную работу $ajax + turbolinks Rails 4.1?

    viktorvsk
    @viktorvsk
    1. Ясное дело, что document у вас один, событие, каждый раз как вы загружаете страницу вы навешиваете на него событие с вызовом функции alert(), но нигде его не убираете. Можно попробовать при page:load убирать события с документа. Можно вешать интервал на переменную, и проверять, если переменная уже существует, то не выполнять код, если нет - навесить на нее интервал

    2. Можно посмотреть в сторону data-no-turbolink и вынести скрипт и хед. Кстати, хед вообше не должен грузиться. Если грузится - вообще что-то не так делаете.

    3. Самое верное решение. Прочитать про плюсы и минусы турболинка, pjax и "стратегии оптимистической загрузки", почитать 14 best practices yahoo, посмотреть как работает гугл и как он разивает свою библиотеку (там даже нет события ready) и выкинуть нафик турболинк. Как сказал кто-то при релизе 4 рельс (не устаю напоминать): "4 рельсы - замечательные. Но первым делом что нужно сделать, это удалить gem 'turbolinks' из Gemfile"
    Ответ написан
    Комментировать
  • Как правильно работать с SASS?

    viktorvsk
    @viktorvsk
    Для решения таких вопросов существуют понятия среды. Среда разработки, использования и тестирования (девелопмент, продакшн, тест).
    В девелопменте вы работаете так, что б было максимально удобно (сасс, лесс, препроцессоры...)
    В продакшене - максимально эффективно с точки зрения производительности.
    Следовательно, нужно правильно "переключаться" между средами. Естественно, в автоматическом режиме.

    В общем, в данном случае, вам нужно работать в SASS/LESS у себя локально, а перед деплоем (заливкой на сервер), файлы должны компилироваться в CSS
    Ответ написан
  • Как организовать бесплатные SMS уведомления с сайта?

    viktorvsk
    @viktorvsk
    То есть, Вы думаете, что ВК просто придумали, как рассылать сообщения бесплатно ? :)
    Просто чем больше объемы, тем меньше цена.

    Кстати, если раньше сообщение в ВК приходило, если примерно 10 минут его не читать, то сейчас в настройках нельзя их присылать чаще, чем раз в неделю.
    Ответ написан
  • Как можно узнать в RoR в какой строчке находится определенная запись в БД?

    viktorvsk
    @viktorvsk
    Или добавить поле, которое будет содержать позицию каждого и при каждом изменении таблицы пересчитываться
    Или User.pluck(:login).index("my_login4") не забыв проиндексировать поле логина

    Но вообще, затея сомнительна. Зачем это нужно?
    Ответ написан
  • Редактирование?

    viktorvsk
    @viktorvsk
    Я бы тут главное упомянул, что нужно понимать, что криво и ровно для вас, ваших друзей и разработчика - понятия совершенно различные.

    Я, вот, конкретно, так и не понял, что именно криво:
    - Кнопка со значком выше по высоте, чем нужно?
    - Инпут меньше, чем нужно, по высоте?
    - Не хватает многоточия в плейсхолдере?
    - Ужасно смотрится черная маленькая лупа на оранжевом?
    - Неверно, что кнопка и инпут разделены пробелом?
    - Нехватает "например: ..." по инпутом?

    Знаете, по статистике, чаще говёность результата кроется в некомпетентности заказчика или менеджера, чем в неопытности или ленивости исполнителя.
    Ответ написан
    Комментировать
  • Как вытащить информацию из swf на сервере?

    viktorvsk
    @viktorvsk
    Ну, как вариант в лоб.
    Запускаете сервер с флешкой, тот что был всегда, у себя, не показывая никому.
    На новом сайте, где только форма, когда человек вводит данные, получаете их и с помощью какого-нибудь phantomjs вводите на первом сайте, получаете результат, отдаете человеку.
    Ответ написан
  • Отрезать видео используя ffmpeg?

    viktorvsk
    @viktorvsk
    Во-первых, все ключи хорошо описаны на сайте
    Во-вторых, если что-то пошло не так, в ффмпеге неплохие сообщения об ошибках
    В-третьих, вроде как если обрабатываете что-то, то нужно указывать и входящий файл и результирующий
    Ответ написан
    Комментировать
  • Есть ли какие-либо рекомендации для загрузки web страниц ?

    viktorvsk
    @viktorvsk
    Как уже сказали, зависит от спецификации проекта.
    Свалвать все в один файл цсс или джс (и, например, картинки в один спрайт) - тоже не всегда верное решение, так как http поддерживает несколько одновременных скачиваний и этим иногда тоже нужно пользоваться.

    Самые базовые принципы изложили пионеры фронтенда - Яху. https://developer.yahoo.com/performance/rules.html (вроде как, есть вариант и на русском)
    Так же неплохая статья недавно попалась на глаза: habrahabr.ru/post/242429
    Ответ написан
    Комментировать
  • Как избавиться от задержки прорисовки параллаксовых блоков в IE (РЕШЕНО!)?

    viktorvsk
    @viktorvsk
    охохо. не читал текст и не смотрел сайт. после того, как увидел первую картинку 500 кб и 1900x1000-с-чем-то

    Попробуйте вернуться после прочтения
    https://developers.google.com/speed/pagespeed/insi...
    https://developer.yahoo.com/performance/rules.html
    Ответ написан
  • Обучение PHP без локальных серверов?

    viktorvsk
    @viktorvsk
    Хочу учиться ездить на автомобиле, но в отличии от велосипеда, роликов и коньков, которым обучался раньше, там нужно учить какие-то правила дорожного движения, а у меня с ними всегда проблемы.
    Ответ написан
    1 комментарий