Edited at

vagrantでrailsのautoloadが効かない

More than 3 years have passed since last update.


結論

二つの課題をクリアしないと解決しませんでした。

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に「更新されてないわ」って思われてたみたいです。