gpt4 book ai didi

ruby-on-rails - Dockerized Rails 5 RC1 应用程序未获取开发中 Controller 和模型的更新

转载 作者:IT老高 更新时间:2023-10-28 12:46:31 27 4
gpt4 key购买 nike

我有相当多的在 Mac OS X + Docker Machine + Docker Compose 上开发 Rails 4 应用程序的经验,但是随着 Rails 5 在开发环境中缓存文件的方式发生了一些变化(目前正在使用 RC1 进行测试)。

docker-compose up启动应用后,应用在开发模式下正常运行。

但是,如果我对 Controller 或模型进行更改,我可以在应用程序中得到反射(reflect)的唯一方法是停止服务器并重新启动它。

因此,当我需要更改 Controller 或模型时,我的工作流程现在看起来像这样:

  1. 更改 Controller /模型类。
  2. 使用 Ctrl + C 停止服务器。
  3. 使用 docker-compose up 启动服务器备份。
  4. 等待服务器启动。
  5. 运行我在浏览器中运行的任何内容。

至少可以说,需要执行步骤 2-4 很烦人,而不是我在 Rails 4 中所习惯的。

我更进一步,使用 Removal instructions 卸载了 Spring。 ,但我仍然得到相同的行为。

我还在 config/environments/development.rb 中搜索了与 Rails 运行时对模型和 Controller 类的铁腕控制相关的任何设置,但我找不到任何东西。 (我假设它真的想依靠观察文件系统来选择性地加载更改,并且从 Mac 上的更改到 VirtualBox 并没有发现一些东西。)

关于我可以尝试什么的任何其他想法?或者是否有任何与这种更激进的缓存工作方式相关的新设置?

最佳答案

我正在使用 Rails 5 rc1。

Rails 5 对代码重新加载进行了一些“改进”,但它似乎不适用于 OS X 上的 Docker。

所以在config/environments/development.rb中,我替换了

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

config.file_watcher = ActiveSupport::FileUpdateChecker

似乎对于 ActiveSupport::EventedFileUpdateChecker 文件观察器,docker-machine 共享文件不会发生更改事件

关于ruby-on-rails - Dockerized Rails 5 RC1 应用程序未获取开发中 Controller 和模型的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com