Задать вопрос
  • Дата в URL повтор, не разобрался?

    @vsuhachev
    Ну или еще вариант - искать в БД просто по id и потом проконтролировать равны ли у найденного объекта дата публикации и категория тому что пришло в url. Если нет то выдать 404.
  • Дата в URL повтор, не разобрался?

    @vsuhachev
    OK, если так надо, то я бы сделал так:

    В модели Post
    scope :by_publish_date, -> (date) { where(publish_date: date) }
    scope :by_category_seo, -> (category_seo) { joins(:post_category).where(post_categories: { seo_url: category_seo}) }


    В PostController
    def show
      date = Time.new(params[:year], params[:month], params[:day])
      @post = Post.by_category_seo(params[:post_category_id]).by_publish_date(date).find(params[:id])
    end
  • Rails, Postgres, Redis и лайки/дизайки?

    @vsuhachev
    Насколько я понимаю лайки хранятся неограниченно, а рекомендации это типа 'Судя по тому что ты лайкал перед этим тебе подходит XXX, YYY и ZZZ'

    Вот настройка recommendations_to_store = 100 это и есть количество вычисленных и хранимых для каждого пользователя рекомендаций посмотреть что-то в зависимости от сделанных лайков.
  • Rails мультисайт?

    @vsuhachev
    При значительном росте объема хранимых данных вы получите тормоза в любом случае, одна это база или 100, база это ведь некая абстракция для группировки таблиц, которые есть файлы на диске. А диск вы перетасовкой абстракций кардинально не ускорите.

    В любом случае потом придется что-то предпринимать, но с одной базой сейчас можно сделать проще, а если можно сделать проще то зачем делать сложно? Ведь ваше потом может и не наступить, если сейчас вы зароетесь в ненужные проблемы...
  • Rails мультисайт?

    @vsuhachev
    OK, мои эмоции излишни, но все же и ваше описание проблемы неудовлетворительно. Если вы заметили, то я ответил только на конкретные вопросы из процитированного мной куска вашего сообщения.
  • Как сменить/выбрать город в React.js c Redux в RoR?

    @vsuhachev
    Так как вы описали обычно не делают
  • Как сменить/выбрать город в React.js c Redux в RoR?

    @vsuhachev
    Ну вам нужно немного сесть и поразмыслить, понять что то, что есть на сервере должно быть доступно для вашего SPA через REST API. Тут нет никакой магии, просто ваше приложение работает теперь на 2 машинах, которые связаны через сеть. Отсюда стройте всю работу.

    Попробуем поразмышлять для вашего случая:
    1) делаете контроллер городов, который по заданному IP возвращает город. К нему из SPA вы обращаетесь через ajax-запрос.
    2) При инициализации SPA читаете из localStorage город.
    2.1) Если город есть то все ок, используете его
    2.2) Если его нету, то берете IP и делаете запрос к серверу, сервер определяет и отдает город, ответ кладете в localStorage.
    3) Если пользователь хочет поменять город
    3.1) Запрашиваете список городов с сервера
    3.2) Даете выбрать пользователю из списка и результат сохраняете в localStorage.
  • Как сменить/выбрать город в React.js c Redux в RoR?

    @vsuhachev
    Да. Рельсы на сервере а localStorage в браузере
  • Правильный "запуск" кастомных js файлов?

    @vsuhachev
    CapeRatel:
    Каждая ссылка отправляется аяксом и возвращает js, который рендерит страничку.

    Турболинкс работает не так, с индексацией поисковиками пробоем у него точно нет.

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

    Например у меня на вполне обычном наборе (jQuery, Bootstrap, select2, Lightview2, DateTimePicker, MaskedInput, JQueryFileUploader) с турболинксом некоторое ускорение наблюдается визуально, особенно в девелопменте т.к. js не собран в один файл. Реально там выигрыш менее секунды, но страницы переключаются чуть плавнее. И чем больше зоопарк стороннего JS тем заметнее должен быть выигрыш от турболинкса.

    С кривыми сторонними библиотеками действительно есть проблемы, но тут есть выход - использовать нормальные, благо их полно.
  • Как reduсers обрабатывает данные в React Redux?

    @vsuhachev
    ES7 spread синтаксис можно использовать как для хэшей таки и для массивов. Для хэшей он аналогичен Object.assign, теоретически они могли записать все через spread, но видимо написали так как есть для наглядности.
  • Популярен ли typescript среди ROR разработчиков?

    @vsuhachev
    Сергей Протько: Зачем строгая типизация на компилируемых в машинный код языках я понимаю, но вот на динамике? Ну ладно, теперь вы сможете отловить узкий класс ошибок "передан параметр не того типа" не покрывая код тестами, но в моей практике такие ошибки встречаются крайне редко, а лишняя писанина раздражает. Вот поэтому я и не вижу смысла в ней.

    Ну и конечно все нужно прикладывать к конкретике. Понимаю вас, если вы пишите на JS прошивки для марсоходов. Там да, отвалиться по ArgumentError крайне обидно, но сайтеги надо писать быстро, вот поэтому тут вся эта морока с типизацией не востребована и имхо не нужно. А там где нужна - каждый уже запилил себе свой язык с блэкджэком и типизацией, Typescript тому пример.

    А вот что автокомплит жирный плюс, тут не поспоришь ))
  • Популярен ли typescript среди ROR разработчиков?

    @vsuhachev
    Назар Мокринский: Ну да, я имел в веду что скоро он будет в браузерах
  • Как сделать правильно ajax запрос в React Redux?

    @vsuhachev
    Дима Моричев: трудно сказать не видя остального кода. В любом случае если есть вопрос - задайте его отдельно
  • Код js подключается 2 раза в application.js и в своем файле(?

    @vsuhachev
    Что делать - выполнять скрипты по событиям, а не в месте их подключения. Тогда порядок js кода будет не важен и не нужно будет включать каждый js-файл в манифест вручную. И не забывайте про turbolinks (если он у вас не выключен конечно)
  • Проблема с rspec. Что делать?

    @vsuhachev
    Там нужно перейти в каталог с заданием (00_hello и т.д.) и из этого каталога запускать rake. А temperature.rb это файл который вы сами должны написать во втором задании.
  • Кто знает русские rails проекты на github?

    @vsuhachev
    Японцы, гадящие в код иероглифами с вами солидарны. Для них кириллица - слезы
  • Как сделать правильно ajax запрос в React Redux?

    @vsuhachev
    waweca: как вы передадите данные в редуцер не важно с точки зрения redux, но по моему лучше не передавать лишнее.

    ворнинги вам выдает реакт т.к. вы для компонента указали обязательные свойства, но не передаете их. Потому что берете их из store (см. декоратор connect).

    Вот этот код объявляет обязательное свойство info
    Info.propTypes = {
      info: PropTypes.object.isRequired
    };
  • Как получить state из другого компонента в React.js?

    @vsuhachev
    waweca: да, реально. Оно именно для этого и придумано. Flux store это то место где хранятся данные внутри SPA. Т.е. вы вначале их туда подкачиваете по ajax а потом используете во всех компонентах в каких это нужно. Почитайте доку к redux, там все толково объяснено с примерами кода.
  • RubyMine не очень помогает с автозаполнением кода, как быть?

    @vsuhachev
    Нет, не понимает. Просто видимо так получилось, что функция с подстрокой 'sess' в текущей области видимости оказалась только одна и именно та самая, которую вы ожидали. Но вообще все это - мое скромное мнение, возможно я неправ...
  • CarrierWave + russian как заставить работать?

    @vsuhachev
    Backstabe: То-то. Без изменения sanitize_regexp вы в original_filename будете получать уже покоцаное имя файла, т.е. вместо "дом" будет "___". Вам же нужно пропускать кириллицу в original_filename и потом ее транслитом менять в функции filename