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

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

>我在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应该被自动加载,并随后重新加载每个请求.

猜你在找的Ruby相关文章