Rails5 (developmentモード) + Vagrant の環境で、コントローラの内容を変えたのにビューに反映されない場合のメモ。
結論
Vagrantのsynced_folder
をrsync
モードで動かしたら解決した。
環境
ホスト側
- Mac OS X El capitan
- Vagrant: synced_folder (rsyncモードではない)
ゲスト側
- Ubuntu Server 16.04
- Rails5 (developmentモード)
現象
コントローラの内容を次のように変えたがビューに反映されない。サーバーの立ち上げ直後の状態で固定。
変更前
render text: "hello one"
変更後
render text: "hello two"
ホストとゲストの時刻にも特に問題は見られない。
ホストの時刻 (UTC表示)
$date -u +"%Y/%m/%d %I:%M:%S" 2016/08/29 11:51:51
ゲストの時刻
$date -u +"%Y/%m/%d %I:%M:%S" 2016/08/29 11:51:58
対策
vagrantのsynced_folder
をrsync
モードで動かすように設定する。
Vagrantfile
を開き、次のような感じでsynced_folder
のtype
をrsync
に設定する。
config.vm.synced_folder "sync", "/home/vagrant/sync", type: "rsync", owner: "vagrant", group: "vagrant", rsync__exclude: [".git/", "vendor/"]
vagrantを再起動する。
$ vagrant reload
rsyncを一度実行する。
$ vagrant rsync
rsync-autoを実行し、以後のホスト側の変更を自動的にゲスト側にアップロードするようにする。デーモン化されないのでCtrl+C
を押すまで終了しない。
$ vagrant rsync-auto