开发模式下,修改文件(Controller),浏览器下不生效,不知道是怎么回事,求解。 环境 XP 下 Rails 3.2.13 + Postgresql + Puma.经常要重启才生效。
你没把config.cache_classes
打开吧?或是开启了config.reload_classes_only_on_change
?监测下ActiveSupport::FileUpdateChecker
这个类的updated?
方法吧
`rvm gemdir`/gems/activesupport-3.2.13/lib/active_support/file_update_checker.rb
这个文件做调试嘛,代码在
def updated?
current_updated_at = updated_at
if @last_update_at < current_updated_at
@updated_at = updated_at
true
else
false
end
end
需要检测这个方法是否确实被调用过,返回值又是 true 还是 false,这个代码就是决定这个类是否需要被 reload 的。
我也觉得先排除 puma,这是目前已知楼主用的比较不同的东西。先检查之前做了什么,贴上 Gemfile 和 config/ 下改动过的文件,而不是马上潜进去 hack。
建议 lz 搞清楚 rails reload 的原理,然后慢慢排错,这么猜和尝试意义不大。比如 @iBachue 提到的 ActiveSupport::FileUpdateChecker。
我也希望能知道你的问题所在。