Получаем данные о ПОД из https://data.gov.ru
Ruby версия (вставьте данную строку в Gemfile): ruby '~> 3.1.0'
Rails 7.0.3.1, PostgreSQL (=< 14.4, рекомендую версию как в heroku: 11.16)
heroku — в .gitignore добавлен файл config/initializers/oink.rb
Анализ логов Oink:
bundle exec oink --format verbose -t 60 ./log/*
Запуск в tmux:
Запустим Overmind, затем запустим Tmuxinator (оба приложения ставятся отдельно):
overmind s 2>&1 >/dev/null &
mux start pod-export
Tmuxinator (mux — это «алиас»), подключившись по сокету, откроет окно Overmind-а с Puma/RoR, если не открываются окна-табы тмукса, сделать так:tmux kill-session -t pod-export; mux start -p=./.tmuxinator.yml
Данные скраппятся по ходу работы. Сайт теперь с API, сделаю без скраппинга в другом репозитории.
layouts/_flash.html.slim
убираются автоматически:
задействован Stimulus (removals_controller.js).
Паршиал shared/_pods_table.html.slim
обновляется с помощью TurboStream,
на индексе стоит TurboFrame, и связаны они с помощью dom_id.
В pods/index.html.slim
— submit из специальной формы gem simple_form
(самописный пейджер / пагинация), в паршале _pods_table.html.slim
происходят сравнения персистанса из БД с соскраппленными таблицами
(метод elem_retrieval
).
Наименования: Pod — ПОД (поставщик открытых данных) связан с ИНН
(tax_payer_id
, реализована валидация) из таблицы budget_participants
.