情况:
>我在lib / foo / bar.rb中使用一个简单的方法定义了这样的代码:
module Foo class Bar def test "FooBar" end end end
在我的帮手中,FooBarHelper,我有:
require `lib/foo/bar` module FooBarHelper def test_foo_bar fb = Foo::Bar.new fb.test end end
>在我看来,我称之为helper方法如下:
<%= test_foo_bar =>
>在我的config / environments / development.rb中,我将目录添加到我的config.autoload_paths中:
config.autoload_paths += ["#{config.root}/lib/foo"]
问题:
当我将Foo :: Bar.test的返回值更改为例如“MODIFIED FOOBAR”时,原始返回值“FooBar”仍然在视图上显示,而不是新值.
由于我处于开发模式,代码在每个请求上都不要重新加载代码?
有人可以告诉我我失踪了吗?
谢谢!
解决方法
他们删除了Rails 3中的应用程序根目录lib文件夹.
您可以将其添加回来
config.autoload_paths << 'lib'
或者你可以在你的帮助器中使用`require_dependency`.
module FooBarHelper require_dependency 'foo/bar' def test_foo_bar fb = Foo::Bar.new fb.test end end
两种方式告诉Rails您的文件lib / foo / bar.rb应该被自动加载,并随后重新加载每个请求.