我正在学习铁轨,而且我遇到了一个小怪癖,我无法在任何地方找到答案:
由于我正在学习rails,我会在localhost运行时(rails s)对代码进行一些调整,然后只需刷新浏览器以查看我想要做的更改是否准确。这适用于视图,CSS,HTML,路由等的更改。
但是现在我正在更改一个控制器文件,该文件正在调用我编写的另一个ruby类,当我对ruby类进行更改时,它们不会立即显示。我知道这个的方式是我在Ruby类中使用各种printf函数来显示事物的当前状态,如果我添加一个并重新运行,它将不会显示,除非我关闭服务器并重新启动它。
有什么想法?这是一个已知的问题吗?
答案 0 :(得分:2)
您必须自动加载包含自定义文件的文件夹:
# in config/application.rb:
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/extras)
在那里你写了你想要自动加载的文件夹。
警告:命名非常重要:必须将其中的文件命名为它们定义的类/模块(如模型,控制器等):
并且您无法自动加载没有此命名约定的文件。原因与自动加载工作有关:在你的代码中调用f.e. Foo
常量,常量丢失,Rails尝试查看是否在其自动加载路径中有一个遵循此命名约定的文件,如果有,则加载它。