首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 3.2.11突然需要重新启动才能“确认”控制器中的任何更改?

Rails 3.2.11突然需要重新启动才能“确认”控制器中的任何更改?
EN

Stack Overflow用户
提问于 2013-01-12 18:14:00
回答 1查看 481关注 0票数 7

全部都是头衔。

注意,这是关于模型或初始化器的更改的而不是。我可以删除控制器中的一个实例变量(比如@user),然后重新加载一个视图,直到我重新启动服务器,在这种情况下,它会抱怨变量为零。

我在正常工作,然后切换到一个完全不同的控制器和视图的集合上工作,现在它是没有任何理由发生的。

该应用程序处于开发环境中。

development.rb内容:

代码语言:javascript
运行
复制
Dashboard::Application.configure do
  config.cache_classes = false
  config.whiny_nils = true
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false
  config.action_mailer.raise_delivery_errors = false
  config.active_support.deprecation = :log
  config.action_dispatch.best_standards_support = :builtin
  config.assets.compress = false
  config.assets.debug = true
end

我如何才能知道它是如何发生的,以及如何修复它?

编辑:**这可能是相关的,但我似乎不能使用在局部运行“rake路由”时存在的任何路径,例如dashboards_path**

图形扭曲:加法

代码语言:javascript
运行
复制
config.reload_classes_only_on_change = false

对development.rb来说,这一问题似乎得到了改善。我仍然想知道为什么会发生,为什么会突然发生,为什么会发生在一个控制器上,而不是另一个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-06 11:13:34

Rails使用自动路径配置来确定要自动加载哪些文件,并重新加载:

代码语言:javascript
运行
复制
module YourApp
  class Application < Rails::Application
    config.autoload_paths += %W( #{config.root}/lib #{config.root}/lib/**/ #{config.root}/app/traits )

    ...

  end
end

正如您所看到的,我已经添加了一个自定义目录,应用/特性目录,在这里我存储了一些定义共享行为的模块。

如果开始工作的控制器位于rails不监视的子目录中,或者具有阻止rails附加文件系统更改事件的权限,则会出现此问题。

config.reload_classes_only_on_change = false之所以“解决”这个问题,是因为整个应用程序会在每个请求上重新加载,而不是依赖于检测文件的更改。

很可能控制器不在监视文件列表中,这就是为什么rails没有在更改时重新加载它的原因。它不在列表上的确切原因可能会有所不同,我需要更多关于该应用程序的文件夹结构和配置的详细信息,然后我才能给出一个好的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14296412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档