• Как сделать preloader на send_data?

    hummingbird
    @hummingbird
    Можно к кнопке добавить:
    data: { disable_with: 'Ожидайте' }

    А также по ее нажатию с помощью JavaScript можно перевести все поля в "только для чтения", а также с помощью все того же JavaScript можно вывести анимированную иконку (смотри fa-spin у Font Awesome) и надпись рядом, мол: "Ожидайте. Ваш запрос обрабатывается."

    UPD
    Или же лучше сделать так. В форму добавьте это:
    remote: true

    Далее смотрите ID формы и добавляйте JS обработчик (CoffeeScript):
    $(document).ready ->
    	$("#form-id").on("ajax:success", (e, data, status, xhr) ->
    		#	Тут какой-нибудь код, когда все хорошо. Передаваемый JSON доступен в data.
    	).on "ajax:error", (e, xhr, status, error) ->
    		#	Тут какой-нибудь код, когда все очень плохо.
    return


    В итоге, если success или error, то скрываете форму и прогресс, а затем на месте всего этого отображается то или иное сообщение.
    Ответ написан
    3 комментария
  • Как идентифицировать клиента мобильного приложения в ActionCable?

    @Biggless
    передавайте токен урлой ws://server.com/?token=abc
    Ответ написан
    Комментировать
  • Как лучше запустить passenger?

    @nikolayvaganov
    Забудьте про passenger, под нагрузкой ведет себя адово. Под боевыми проектам сейчас использую rubyenv + puma unix socket + nginx.
    Ответ написан
    3 комментария
  • Как сделать массовый апдейт параметров с валидацией?

    ibub1ik
    @ibub1ik
    Ruby/Rails Dev => Elixir
    Можно использовать `update`. Вот еще полезная ссылка по теме: www.davidverhasselt.com/set-attributes-in-activerecord
    Ответ написан
    1 комментарий
  • Rails, Postgres, Redis и лайки/дизайки?

    @vsuhachev
    Из документации к этому гему:

    To ensure that users' recommendations are processed after they rate items, make sure your bundled queue system is running


    NOTE: Your Redis database MUST be persistent. All ratings are stored permanently in Redis. If you're worried about Redis losing data, keep backups.


    Фоновая задача нужна для того чтобы обновлять связи внутри хранилища Redis. Или можно вызывать обновление вручную (см. davidcel.is/recommendable/#manually-generating-rec...)

    UPD: В итоге оказалось что все хранится в Redis
    Ответ написан
    2 комментария
  • Как сделать выборку из двух схожих таблиц?

    maximw
    @maximw
    Посмотрите это:
    https://ru.wikipedia.org/wiki/Union_%28SQL%29
    Применимо к MySQL
    www.mysql.ru/docs/man/UNION.html
    Ответ написан
    Комментировать
  • Как сделать выпадающий список в activeadmin?

    @M1Anderson
    Ruby on Rails developer
    Возможно это поможет
    f.input :language_name, :label => 'language', :as => :select, :collection => Language.all.map{|l| ["#{l.name}", l.id]}

    А лучше использовать Rails Admin. Там все работает по умолчанию и выглядит современнее.
    Ответ написан
    2 комментария
  • Как лучше сделать сайт адаптивным?

    andykov
    @andykov
    Shit happens
    Ручками - лучшее решение.
    Как уже посоветовали, используйте препроцессоры.
    От бутстрапа можете взять медиа запросы, но не более. Если бы писалось с нуля, другое дело, а в вашем случае только гемора прибавит.
    Ответ написан
    Комментировать
  • Rails и PHP на одном сервере?

    @rsi
    software engineer
    У меня на домашнем компе крутиться такая схема.
    Ставишь nginx и php-fpm, добавляешь в nginx сайт по инструкции nginx и php-fpm (на диджитал окене хороший мануал)

    Ставишь рельсы, гем юникор и настраиваешь в nginx второй сайт по инструкии nginx + unicorn (на диджитал окене хороший мануал)

    Радуешься жизни.

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

    навесить триггер на INSERT в таблица_1
    Ответ написан
    1 комментарий
  • Как заставить работать роутинг в laravel 5?

    @slavabars
    Веб программист
    Убери.

    Options -MultiViews


    На папку storage и вложенные дай права записи всем кто исполняет код. Ну или 777 если только тест.
    Ответ написан
    1 комментарий
  • Как построить базу данных под личные сообщения?

    yokotoka
    @yokotoka
    Python guru
    Знаю, что многие нагруженные сервисы просто делают денормализацию данных (не только для чатов, но и для новостей и т.п.). Как правило, каждое отправленное сообщение в общем чате (или один на один) попадает одновременно каждому участнику чата в его личную ленту/таблицу/плоский файл. Это решает проблемы загруженности (каждый пользователь читает только свой набор отдельных файлов/таблиц/строк и не нагружает общие хранилища данных, где могут быть миллиарды записей при решении задачи "в лоб"). Также это решает проблему с удалением сообщений (один может удалить переписку, а другой - оставить себе на память). А ещё это автоматически решает проблему видимости сообщений в общем чате - если человека пригласили в беседу только что, то он не видит предыдущие сообщения участников. За попадание сообщений в "личную зону" каждого пользователя отвечает не база, а контроллер, который дублирует сообщения всем.

    Да, некоторые операции усложнятся, но часто ли вам нужно количество отправленных пользователем личных сообщений, или какая-нибудь статистика по личным перепискам всех пользователей, чтобы ради небольшого выигрыша по скорости доступа к этим данным делать всю систему отправки сообщений с тормозами? Для всех таких редко нужных запросов можно прикрутить отдельный поисковый индексатор и счётчики, map/reduce-алгоритмы и т.п.

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

    Кстати, необязательно хранить систему личных сообщений в базе. Можно, но необязательно. Для этого даже тупо xml'ы/json'ы подойдут. Ведь что чаще всего нужно от чата собеседнику? Чтобы 1) отправить сообщение, чтобы его прочитали; 2) получить сообщение; 3) заглянуть в историю чата. Это прекрасно ложится на модель "каждому пользователю - по отдельной копии каждого чата". Да, денормализация, но почитайте выше пример про пригласительные и ксерокс. В вашем случае контроллер будет делать "ксерокопии" письма и отправлять их всем адресатам. А что с этим письмом делать дальше - уже дело каждого.
    Ответ написан
    1 комментарий
  • Появляющийся блок при наведение мыши

    GM2mars
    @GM2mars
    Без css анимации.
    HTML верстка:
    <div class="cont">
      <div class="overlay">
        <h1>Заголовок</h1>
        <p>Текст</p>
      </div>
      <img src="img1.jpg">
    </div>

    CSS стили:
    .cont {
      width: 500px;
      height: 500px;
      position: relative;
    }
    .overlay {
      position: absolute;
      text-align: center;
      width: 100%;
      height: 100%;
      background: rbga(0, 0, 0, 0.3);
      display: none;
    }

    JavaScript(jQuery):
    jQuery(document).on("hover", ".cont", function() {
      jQuery(this).children(".overlay").fadeIn("fast");
    }, function() {
      jQuery(this).children(".overlay").fadeOut("fast");
    });


    Принцип простой, есть контейнер с фоновой заливкой цвета, в нем картинка, над картинкой абсолютно расположен блок с текстом, который скрыт (display: none).
    При наведении мышкой на контейнер, показываем скрытый блок с текстом, и делаем прозрачность у картинки. На идеальное решение не претендует, но должно работать.
    Ответ написан
    Комментировать