結論
二つの課題をクリアしないと解決しませんでした。
1. サーバーのtimezoneがずれてた。
2. GetHostTimeDisabledでホスト、ゲストの時間を同期
ゲストとホストの両方でdateコマンド打てば、ずれてるかどうかわかると思います。
注:ここではrsyncの話はしないです。私はnfsでやっとります。
[対応1]サーバーのtimezoneがずれてた
サーバーのtimezoneをホストOSと同じJSTにしてあげる
cookbookはこちらを使いました。
https://supermarket.chef.io/cookbooks/timezone_lwrp
他にもtimezone系のはあるので、↑のサイトで探してよしなに選ぶと良いかと。
Cfeffile
cookbook 'timezone_lwrp'
Vagrantfile
config.vm.provision :chef_solo do |chef|
chef.add_recipe "timezone_lwrp"
chef.json = {
tz: "Asia/Tokyo"
}
end
[対応2] GetHostTimeDisabledでホスト、ゲストの時間を同期
Vagrantfile
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
# ↑この行とは別に
# ↓この行を追加する
vb.customize ["setextradata", :id, "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled", 0]
end
参考:http://polidog.jp/2014/01/08/vagrant/
経緯
ホスト側でソース直したのに反映されず困ってました。
結局、
ファイルのタイムスタンプ的なものが修正によって更新されても、タイムゾーンがずれてるせいでrailsに「更新されてないわ」って思われてたみたいです。