Если вы разрабатываете руби приложения под вагрант то скорее всего уже столкнулись с тем что достаточно сложно перезапускать руби код внутри контейнера по изменению. 

В vagrant есть несколько способов синкать файлы с хостовой машины в контейнер: rsync и nfs. Если мы используем rsync, то все, в приципе, ок. Но если мы хотим использовать nfs (мне этот вариант кажется удобнее, потому что ненадо держать в фоне vagrant rsync-all), то в некоторых случаях все становится немного сложнее.

Сейчас я использую rerun, который в свою очередь использует gem listen. Чтобы перезапуск по изменению кода заработал, надо форкнуть rerun и добавить один параметр, как тут. Ну или воспользоваться моим форком.