6

我最近能够通过将所有内容分组到文件夹来组织我的代码。我的目录下的控制器组和目录下的模块
都具有相同的“组名”时遇到问题,但我能够通过以下方式进行修复:app/lib/

Rails:库模块和一组控制器的名称相同?

我也知道,每当您更改lib代码时,都需要重新启动 Rails 服务器,这对我来说完全没问题。

但是最近重新整理之后,每次修改controllers中的代码,都会报如下错误!!!

NameError at /admin
uninitialized constant Admin::PagerDuty

为了解决它,我只需重新启动服务器!

有什么建议吗?!

编辑:结构:

控制器main_controller.rbapp/controllers/admin

class Admin::MainController < ApplicationController
end

帮手main_helper.rb在下app/helpers/admin

module Admin::MainHelper
      require "admin/pager_duty.rb"

      def pager_duty
        pagerduty = Admin::PagerDuty.new()
        @on_call = pagerduty.on_call()
        @counts = pagerduty.open_incidents()
      end
end

libpager_duty.rblib/admin

module Admin 
  class PagerDuty
   ....
  end
end
4

1 回答 1

11

尝试改变

require "admin/pager_duty.rb"

require_dependency "admin/pager_duty.rb"

在你的模块中。

于 2013-08-17T18:33:05.903 回答