Tagged

rails

A collection of 18 posts

Grape Rails.
grape

Grape Rails.

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

pgsync
ruby

pgsync

Синхронизация одной Postgres базы данных в другую. pgsync декларирует следующие преимущества скорость - таблицы передаются параллельно безопасность - встроенные методы, чтобы исключить утечку чувствительных данныхгибкость - изящная обработка различий в схемах данных, например отсутствующих колонокудобство - синхронизация части таблиц, групп таблиц, и относящихся записейПроверено в бою на Instcart. Установка gem

mailcatcher
ruby

mailcatcher

Конечно да, можно использовать обычную почту, но для облачных IDE или изолированных контейнеров LXC или для DOCKER окружения удобней будет подменять SMTP и смотреть почту локально или в браузере.  Особенно удобно когда работаем дистанционно через облако. mailcatcher написан на Ruby. Так как часть проектов у нас в экосистеме Rails это

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, не отменять

rails attr_accessor
ruby

rails attr_accessor

В  ООП есть понятие getter и setter методы для доступа к переменной внутри объекта. В Ruby мы может сделать нечто подобное class Car def initialize(color) @color = color end # getter def color @color end # setter def color=(value) @color = value end end attr_accessor - это короткая запись данного для

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. Прошло уже много времени, но

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: trueКофигурация Webpacker # config/webpacker.

Rails Redis Cache Store
rails

Rails Redis Cache Store

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

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_pathm headers: true) do |item| Element.

9  ChatBots platform (2018)
bot

9 ChatBots platform (2018)

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

Rails TimeZone
rails

Rails TimeZone

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

rails

OmniAuth Rails

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

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 Slim options # Slim::Template.set_

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

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

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

Rails 5.2.2, Neo4J, Docker
rails

Rails 5.2.2, Neo4J, Docker

Пример настройки Rails 5.2.2 и Neo4J в экосистеме Docker/Docker Compose. Указаны файлы необходимы для начала работы в существующем Ruby on Rails проекте. Можно воспринимать как контрольный лист интеграции Rails с Neo4J. Gemfile gem 'neo4j', '~> 9.4.0'config/application.rb (or config/environments/{development|test|production}

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

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

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

Railties
rails

Railties

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