我正在运行一个Docker容器(Rails应用程序)和一个运行PostgreSQL的数据库容器。
我挂载了本地工作目录到我的应用程序容器,以便我可以在本地工作,并使更改反映在应用程序容器中。
在这样做的过程中,除了我的控制器似乎出现了一些奇怪的缓存行为外,一切都正常。
例如
路由:
get '/something', to: 'something#show'
控制器
class SomethingController < ApplicationController
def show
render text: "Hello 1"
end
end
当我访问myapp/something时,显示“Hello 1”,非常完美!
然后我编辑了我的控制器:
class SomethingController < ApplicationController
def show
render text: "Hello 2"
end
end
当我访问myapp/something时,为什么还是会显示“Hello 1”?如果我返回一个HTML视图,它就可以更新,那么为什么我的控制器中的更改没有反映出来呢?唯一让这些更改生效的方法是在路由文件中进行更改并保存,这似乎刷新了被缓存的内容。注意:我没有在浏览器中缓存,我已经关闭了缓存,并且每次都进行了硬重载。有人能解释一下吗?我正尝试遵循这个教程:https://www.youtube.com/watch?v=NEdDa3Zqu7s&list=PLbG4OyfwIxjEe5Y3hQCiQjYnSgRH051iJ&index=3。谢谢。
config.cache_classes = false
,但没有config.reload_classes_only_on_change = false
,这似乎解决了问题。 - Brad