rails

A collection of 22 posts
Ruby Language
ruby

Ruby: nil? empty? blank? present?

В Ruby on Rails доступны несколько методов для проверки существования значения или состояния объекта. Ruby предлагает nil?, empty? и Rails добавляет blank? и present?. Каждый из методов имеет свою логику и назначение. И конечно предполагает применение в нужном контексте. nil? Метод класса Object в Ruby. Что означает его повсеместную доступность.
1 min read
Rails 7.0 - Релиз
rails

Rails 7.0 - Релиз

Свершилось. 15 декабря 2021 года официально вышел Rails 7.0. Основный посыл -  упрощение работы над современными веб-приложения. Это достаточно масштабный переход. Так же обновилась главная страница сайта. А DHH записал новые видео. * Комментарии к релизу Факты * Более 600 человек участвуют в разработке и поддержке кода Rails. * Rails это фреймворк
Rails 7 (RC1)
rails

Rails 7 (RC1)

И так,  6 декабря 2021 года представлен релиз-кандидат Rails 7. И команда разработки готова в скором времени готова объявить о завершении работы над новой версией Rails 7. С момента альфа версии было исправлено множество проблем. Если все пойдет по плану, то мы увидим финальный релиз Rails 7 уже в этом,
1 min read
Rails Multibase and Models
rails

Rails Multibase and Models

Rails 6.1 предлагает возможность использования одновременно нескольких баз данных. Для чего? Во первых можно распределить нагрузку и использовать одну из баз только для чтения, другую только на запись, например для админки. Конечно можно использовать разные типы баз данных в одном приложении. Это открывает еще больше возможностей, например для объединения
2 min read
Grape Rails.
grape

Grape Rails.

Grape - это API-фреймворк для Ruby. Grape создан для работы с Rack приложениями. Для создания API используется простой DSL (domain specific language). Grape поддерживает разнообразные общепринятые практики при создании API. Для установки, добавить в Gemfile: gem 'grape' или сразу "всё" необходимое для Rails # grape gem '
3 min read
pgsync
ruby

pgsync

Синхронизация одной Postgres базы данных в другую. pgsync декларирует следующие преимущества * скорость - таблицы передаются параллельно * безопасность - встроенные методы, чтобы исключить утечку чувствительных данных * гибкость - изящная обработка различий в схемах данных, например отсутствующих колонок * удобство - синхронизация части таблиц, групп таблиц, и относящихся записей Проверено в бою на
2 min read
mailcatcher
ruby

mailcatcher

Конечно да, можно использовать обычную почту, но для облачных IDE или изолированных контейнеров LXC или для DOCKER окружения удобней будет подменять SMTP и смотреть почту локально или в браузере. Особенно удобно когда работаем дистанционно через облако. Начиная с 2023 года использую maildev. Удобно и просто. Отдельно как сервис или в
2 min read
rails webpacker live-reload views
rails

rails webpacker live-reload views

webpacker дает возможность использовать webpack и webpack-dev-server вместе с Rails. webpacker отлично интегрирован с Rails и имеет все необходимые настройки для быстрого старта с основными популярными технологиями, такими как React или Vue. При разработке мы можем использовать все преимущества webpack. При этом webpacker сосуществует совместно с assets pipeline, не отменять
1 min read
Rails, Webpacker: pug and sass loaders
rails

Rails, Webpacker: pug and sass loaders

Кто работает c  Pug, Slim, Sass никогда больше не возвратятся к "чистому" HTML,CSS коду по крайней мере по своей воле. Скорость кодирования высока, ошибок меньше. Rails 6.0.x, Webpacker 5.x (5.2) (2020-10) Не получается запустить "из коробки" связку Sass, Vue, Pug. Прошло
3 min read
Rails 6.0 - webpacker hmr in docker
rails

Rails 6.0 - webpacker hmr in docker

Главное * для webpacker создаем отдельный docker сервис, но используем один образ * host - имя контейнера где работает webpacker, Rails будет работать (компилировать) с этим адресом * публичный хост - localhost, при HMR будет опрашивать localhost:3035 * разрешить политику подключения  policy.connect_src для HMR * указываем в настройках hmr: true и hot:
1 min read
Rails Redis Cache Store
rails

Rails Redis Cache Store

Начиная с Rails 5.2 можно использовать в качестве кеша Redis. Несколько разных типов кеша доступны в Rails:  MemCacheStore, FileStore и MemoryStore. Теперь начиная с версии 5.2 мы имеем встроенную поддержку Redis в качестве хранилища кеша. Как работает кеш в Rails можно почитать здесь. По умолчанию Rails использует кеширование
1 min read
Rails фоновые задачи с Sidekiq
rails

Rails фоновые задачи с Sidekiq

Допусти нам нужно по требованию выполнить импорт данных из CSV и отобразить результаты. При стандартном подходе в контроллере создадим метод  и выполним обработку файла. class HomeController < ApplicationController require 'csv' def upload csv_path = File.join Rails.root, 'db', 'data.csv' CSV.foreach(csv_
1 min read
9  ChatBots platform (2018)
bot

9 ChatBots platform (2018)

Зачем нужны чат-боты бизнесу? ChatBot может помочь в развитии отношений с клиентами выполняя некоторые однообразные, можно сказать рутинные операции. Что именно? Чат-бот может легко и без ошибок отвечать на однообразные вопросы, собирать необходимую информацию, создать лиды и контакты в CRM. В чём плюсы * Доступность 24/7. Никогда не устает, всегда
1 min read
Rails TimeZone
rails

Rails TimeZone

Ruby предлагает два класса для управления временем: Time и DateTime. TZInfo является отдельной библиотекой часовых поясов, которая обеспечивает преобразования с учетом перехода на летнее время и включает в себя данные о 582 различных часовых поясах. Часовой пояс в Rails В Rails ActiveSupport::TimeZone является оберткой для TZInfo, предоставляющая набор из
2 min read
rails

OmniAuth Rails

OmniAuth - библиотека стандартизирующая аутентификацию через различных провайдеров  в веб-приложении. Библиотека создавалась чтобы быть мощной, гибкой и в тоже время "маленькой" насколько это возможно. Любой разработчик может создать стратегию для OmniAuth которая сможет аутентифицировать пользователей из разных несовместимых между собой систем (приложений). OmniAuth стратегии создаются для любых случаев
2 min read
rails

Rails Request, Subdomain, Host

В Rails доступен request (ActionDispatch::Request) со всей необходимой информацией о запросе.  Основной базовый класс Rack::Request. Чтобы получить данные о различных параметрах  запроса используем встроенные методы и хелперы. Во первых мы можем получить полный базовый url - request.base_url. Получить имя хоста через request.host и имя поддомена,
rails

Rails Slim Markdown Tables

По умолчанию парсер таблиц отключен. И вместо таблиц будет обычная строка. Включить обработку разметки таблиц в связке Rails+Slim+Redcarpet можно через опции подключаемых движков. В данном случае Redcarpet для Markdown. Gemfile gem 'slim-rails' gem 'redcarpet' По умолчанию парсер таблиц отключен. config/initializers/slim.rb # Standard
Некоторые типы данных Rails
rails

Некоторые типы данных Rails

Широко распространенные типы данных в Rails. Гео-координаты и деньги. Гео-данные - координаты точки на карте. Деньги - стоимость товаров и услуг, прайс-лист, финансовые данные. Пример для PostgreSQL. Правильный тип данных имеет важное значение для работы и поддержки приложения.   Гео-данные rails g Location 'lng:decimal{10,6}' 'lat:
1 min read
Rails - текущая страница?
rails

Rails - текущая страница?

Варианты определения текущей страницы в Rails. Абсолютно стандартная задача в любом веб-приложении. Есть разные варианты определения текущей страницы, по факту текущего URL. Чаще всего используется изменения стилей элементов навигации или подключения разных ресурсов на разные страницы сайта. Использовать params[:id] = link_to 'My', my_path, class: ['navbar-item&
1 min read
Railties
rails

Railties

Rails::Railtie это основа Rails фреймворка, а также некоторые хуки для расширения Rails и/или модификации процесса инициализации. Каждый важный компонент Rails (Action Mailer, Action Record, Action Controller и др.) реализуют Railtie (являются под-классами). Каждый отвечает за свою собственную инициализацию. Это позволяет Rails не иметь каких-либо собственных хуков для компонентов,
1 min read