ruby-on-rails – 在开发模式下,Rails3不会在lib中重新加载代码

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在开发模式下,Rails3不会在lib中重新加载代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
情况:

>我在lib / foo / bar.rb中使用一个简单的方法定义了这样的代码

@H_502_4@module Foo class Bar def test "FooBar" end end end

在我的帮手中,FooBarHelper,我有:

@H_502_4@require `lib/foo/bar` module FooBarHelper def test_foo_bar fb = Foo::Bar.new fb.test end end

>在我看来,我称之为helper方法如下:

@H_502_4@<%= test_foo_bar =>

>在我的config / environments / development.rb中,我将目录添加到我的config.autoload_paths中:

@H_502_4@config.autoload_paths += ["#{config.root}/lib/foo"]

问题:

当我将Foo :: Bar.test的返回值更改为例如“MODIFIED FOOBAR”时,原始返回值“FooBar”仍然在视图上显示,而不是新值.

由于我处于开发模式,代码在每个请求上都不要重新加载代码

有人可以告诉我我失踪了吗?

谢谢!

解决方法

他们删除了Rails 3中的应用程序根目录lib文件夹.

您可以将其添加回来

@H_502_4@config.autoload_paths << 'lib'

或者你可以在你的帮助器中使用`require_dependency`.

@H_502_4@module FooBarHelper require_dependency 'foo/bar' def test_foo_bar fb = Foo::Bar.new fb.test end end

两种方式告诉Rails您的文件lib / foo / bar.rb应该被自动加载,并随后重新加载每个请求.

猜你在找的Ruby相关文章