加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:41:05 所属栏目:百科 来源:网络整理
导读:情况: 我在lib / foo / bar.rb中使用一个简单的方法定义了这样的代码: module Foo class Bar def test "FooBar" end endend 在我的帮手中,FooBarHelper,我有: require `lib/foo/bar`module FooBarHelper def test_foo_bar fb = Foo::Bar.new fb.test ende
情况:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读