rails new test_rollbar_app
cd test_rollbar_app
По умолчанию в Rails создано три файла с окружениями:
Порядок создания нового окружения:
Создание базы данных для нового окружения:
staging_unmerged:
<<: *default
database: db/test.sqlite3
Запуск сервера в нужном окружении:
bin/rails s -e test
Запуск консоли в нужном окружении через глобальную переменную окружения
RAILS_ENV=staging_unmerged bin/rails c
Инициалайзеры нужны для того, чтобы передать в приложение какие-либо настройки или просто запускать код в момент запуска самого приложения. Прдставляют из себя просто файлы с ruby-кодом.
Все файлы с инициалайзерами лежат в config/initializers
# Инициалайзеры запускаются, когда приложение полностью загружено
# https://guides.rubyonrails.org/configuring.html#initialization-events
# Выполнить код в определенные моменты загрузки приложения
Rails.application.config.before_initialize do
# initialization code goes here
end
Aws.config.update(
region: 'us-west-2',
credentials: Aws::Credentials.new('akid', 'secret')
)
Редактирование зашифрованного config/credentials.yml.enc
Файл шифруется с помощью config/master.key. Этот файл надо надежно хранить и не выкладывать в открытый доступ.
EDITOR=vim bin/rails credentials:edit
master.key:
84d07eaf0803e0e9be81dd93e3b8874b
credentials.yml.enc:
V4h/v1fE/bGKuUFdu7u05b04IZzkNaTxRHB0R5hc9gPNhuEV3PKMBW0M6Vp4AxRndap/PhdXDXC4DmE4Ad6QpJtC/yANZJ1vjaEgYWCf3ibzIMEZ6Qc6yHS25JdsxQe033/EgXeeDMRaA+U+VYZSoRChrseWqdaZ/pEdZEP6LW76kNFQ2eLMyk5/xHr8Nwqva5DNtjVxvwLb0aB9cj9eenYhOlBQV93zEAqqbxSV8+UHlwUUXc1VXMKj5NDWjHVUvX2AQWVi0NefmtdMon2PG6UC5mH84CtcvV1kDF4M9vkuTOwLhkXd4AQm+SOPgXOFJat2BM/EB41nl0x47O1DuOOpSqWrwa8yehjCpe85kU6SBvflehVK9CTGfaV6abFP2O6vDtTS4yXss8JeZ0NIwH68JytyKdrt3riVl24UHlE=--7DTxhIEXrrXC6i9d--1KKY2cWFay7yMEYHYRWdug==
Spring - предзагрузчик приложения. Хранит приложение в фоновом режиме, тем самым увеличивая скорость разработки: тесты, миграции и пр. запускаются быстрее.
Добавление и удаление Spring из бинарных файлов:
bundle exec spring binstub --all
bin/spring binstub --remove --all
bin/rails restart
class PagesController < ApplicationController
def index
# Вызов метода логирования
logger.debug('Debug logs')
end
end
# config/environments/*.rb
Rails.application.configure do
# Задаем минимальный уровень логирования
# https://guides.hexlet.io/ru/logging
# https://guides.rubyonrails.org/debugging_rails_applications.html
config.log_level = :info
end
module RailsConfiguration
class Application < Rails::Application
# config.logger = Logger.new(STDOUT)
config.logger = Log4r::Logger.new('Application logs')
end
end
config/puma.rb
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "staging_unmerged") == "staging_unmerged"
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
#
port ENV.fetch("PORT") { 5000 }
# Specifies the `environment` that Puma will run in.
#
environment ENV.fetch("RAILS_ENV") { "staging_unmerged" }
# Specifies the `pidfile` that Puma will use.
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
Создайте тестовый проект для настройки Rollbar:
rails new test_rollbar_app
cd test_rollbar_app
Зарегистрируйтесь на Rollbar и создайте в его интерфейсе новый проект
Добавьте и установите гем rollbar
Сгенерируйте конфигурацию командой
bin/rails generate rollbar
В config/environment.rb добавьте перехват ошибок Rollbar. Полностью файл должен выглядеть так:
# Load the Rails application.
require_relative "application"
# Initialize the Rails application.
Rails.application.initialize!
require_relative 'rollbar'
notify = lambda do |e|
Rollbar.with_config(use_async: false) do
Rollbar.error(e)
end
rescue StandardError
Rails.logger.error 'Synchronous Rollbar notification failed. Sending async to preserve info'
Rollbar.error(e)
end
begin
Rails.application.initialize!
rescue Exception => e
notify.call(e)
raise
end
Экспортируйте переменную с токеном Rollbar
export ROLLBAR_ACCESS_TOKEN=<ваш токен>
Скопируйте файл rollbar.rb из папки config/initializers в config
Запустите приложение. При этом сразу должна появится ошибка:
`Application has been already initialized. (RuntimeError)`
Если Rollbar настроен корректно, то на сайте появится эта ошибка.
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу