`
seemoon
  • 浏览: 155281 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在console中强制class reloading

阅读更多
ror开发的一个强势就是其解释性勿须编译,对源文件的更改可以立即体现在运行中,当启动rails应用之后,可以运行ruby script/console对应用进行即时调试,比如对model进行query测试,检验find查询的语句编写和结果查看,好处是不用打开数据库控制台就可以进行数据库编程,在检查查询的同时也校验了程序的编写,提高了开发效率。最近在开发当中遇到个问题,就是development mod下启动rails应用之后,在console中做调试时发现对源文件的修改并不能立即生效,检查config/environments/development.rb配置,config.cache_classes = false,应该是支持类的重新加载,而通过browser发出请求,修改是生效的,如何解决这个问题?当然一个办法就是需要不停的关闭和重启rails应用,但是太麻烦了,后来查了一下网上的资源,发现可以在console当中输入‘reload!’强制rails进行类重新加载,问题得到解决。

config.cache_classes配置选项的设置意义如下:
引用

Without getting into too much nitty-gritty detail, when the config.cache_classes setting is true, Rails will use Ruby's require statement to do its class loading, and when it is false, it will use load instead.


至于require与load的不同,可以查看yjjxf的一篇文章:
http://www.iteye.com/topic/79864
分享到:
评论
1 楼 dazuiba 2008-08-16  
Rails2.1的console中的reload好像有问题,不能reload lib下的类文件。

每次得让我自己load "lib/xx.rb"

还有一个问题:如果文件名和类名不一致,reload也不起作用。

相关推荐

    lets-hotfix:Dynamic class reloading for java。Java代码热更新,支持本地、远程

    在平时的开发过程中,开发流程一般是,编写/修改代码 -> 编译/打包 -> 部署/重启服务 -> 测试刚才的代码 -> 编写/修改代码 -> 编译/打包...这样的一个循环。 常见问题场景 下面的场景是否很熟悉呢? 小明: 小张,我...

    reloading - 实现程序运行时修改Python代码而不打断运行过程-python

    程序运行时修改Python代码而不打断运行过程,可在PyTorch程序训练过程中添加输出、查看统计、保存模型参数等重新加载一个 Python 实用程序,用于在每次迭代时从源重新加载循环体而不会丢失状态 用于在深度学习模型...

    reloading_log:重新加载日志源代码以创建.exe应用程序

    reloading_log 重新加载日志源代码以创建.exe应用程序。应用目的: 业余/竞技射击手经常自己制造弹药。 这是一个小程序,旨在允许用户创建和维护与他们制造的每种弹药有关的详细信息的日志。 它是根据与测试用户达成...

    log4j-1.2.14.jar

    1.2.15有个Bug,会提示log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository,大家使用1.2.14替换1.2.15即可解决!

    热重载SwiftUI应用程序的实用程序。-Swift开发

    @_exported import HotSwiftUI这将使SwiftUI.View上的.eraseToAnyView()方法在整个应用程序中可用,以擦除其类型以及您可以观察到的全局injectionObserver变量,以便在注入代码后强制视图进行更新。 SwiftUI非常...

    HotReloading:作为Swift软件包提供热重装

    该脚本还会稍微修补项目,以添加所需的"-Xlinker -interposable" “其他链接器标志”,因此在添加HotReloading和守护程序脚本构建阶段之后,您将不得不第二次运行该项目,以便热加载才能开始工作。 有关如何使用它...

    reloading:ReactJS 的加载组件

    npm install --save reloading 用法 var React = require('react'); var Loading = require('reloading'); var App = React.createClass({ getInitialState: function () { return { loading: false }; }, ...

    tapestry

    Live Class Reloading使您可以编辑Java代码并通过在Web浏览器中重新加载页面来立即查看结果,从而实现非常快速的“编码-查看-修复”循环。https://mirrors.tuna.tsinghua.edu.cn/apache/tapestry/

Global site tag (gtag.js) - Google Analytics