C Windows никогда не работали, в этом просто нет никакого смысла. Даже девелоперу проще vagrant под виндой запустить, чем пытаться разобраться у него все просто не работает, или не работает именно из-за Windows
.env в гитигноре, соответсвенно для девелопмента и продакшена разный.
в гите .evn.example для других разработчиков и по необъодимости описание каждой переменной в readme.md
Тулза для деплоя - mina или capistrano каждый раз подтягивает актуальный .env для продакшен приложения из shared файла.
Что касается деплоя, то он от проекта к проекту разный. Heroku, AWS Beanstaslk, Docker, просто приложение на DigitalOcean или AWS ec2, Rancher или Deis. И получается, что ENV переменные универсальный вариант конфигурирования, который работает везде.
Какую должность занимает тот, который развёртывает приложения RoR?
Как правило, если приложенько простое - Rails + Postgres + Redis + Cron - его настраивают сами разработчики, если сложнее или требуется несколько серверов - инженер из команды DevOps. И там уже он решает нужны ли ему те или иные инструменты вроде terraform, ansible и других или нет.
По факту он отдает в команду разработчиков скрипт или команду для деплоя приложения.
Как у вас налажен процесс синхронизации продакшн среды с предварительными средами?
Такое практикуем не так часто, обычно 2 варианта.
1. Раз в какое-то время синхронизируем базу, при этом обфусцировав данные пользователей
2. Образ докера билдится только для стейджа, на прод заливается тот, который работает на стейдже.
так не смысла писать, есть attr_reader для короткой записи. Или attr_accessor который сразу 2 метода объявляет.
В вашем примере из книги def age=(value) переопределяется потому что внутри есть проверка на > 0
Но, обычно эти базовые методы переопределяют редко. В книге есть просто пример того, что так можно сделать.
Пример, когда это действительно удачно - когда эти методы акцессоры уже определены какой-то библиотекой, которую вы используете, т.е. они уже не стандартные и Вам нужно туда засунуть еще больше логики.
Класс Todo и будет презентором в какой-то мере. Так лучше, чем плодить кучу инстанс переменных, потому что рельса инстанс переменные контроллера прокидывает во все паршиалы, что порой может дать непредсказуемое поведение.
что тогда лучше выбрать, если нужны данные каждые 5 сек.?
Строить пруф оф концепт.
0. Проверить, что это действительно актуальное требование прямо сейчас. Может Вам достатточно обновлять данные реже. Не в будущем, когда будет много клиентов и т.д. а прямо сейчас или тому подобное
1. Проверить, что целевой сайт способен отвечать на такое количество запросов так часто
2. Скедулинг должен отрабатывать максимаьно быстро
3. Так как мультипоточность в руби не настоящая, нужно будет запускать несколько процессов того же сайдкика, возможно на разных серверах. Продумывайте структуру так, чтобы это было небольшое отдельное приложение на руби, которому не надо поднимать вместе с собой всю рельсу, которая жрет 200-300 метров памяти на процесс
Если с сервером работаете не через API а просто инициализируете реакт на странице, то нужно путь к картинке куда-то положить и через javascript прочитать и передать в реакт. Например так
rollback значит что или валидация какае-то не прошла, или какой-то коллбек вернул false. Чтобы установить пароль должен быть просто параметр с именем password и если надо password_confirmation
https://www.vagrantup.com/ если не хотите ставить линукс. Рельса не работает под виндой, даже если сейчас заведется, потом что-нибудь обязательно другое вылезет
Пожалуйста. Приятно, что не зря потратил кучу времени на оформление всего этого в цифровом виде.
Отметьте пожалуйста ответ как верный, если считаете его таковым=)
parent = klass.find(params[:id])