0

我在以下文件夹结构中使用 ruby​​ 2.1.5 和 rails 4.1:

- lib/
  - notifications/
    - notifications.rb
    - group_actions.rb


# notifications.rb
module Notifications

end


# group_actions.rb
class GroupActions
  self.do_something
end


# inside a controller
class Api::V1::PostsController < Api::BaseController
  include Notifications
  .
  .
  .
  def create
    Notifications::GroupActions.do_something
  end
  .
  .
  .
end

我还在“config/application.rb”中添加了这一行来自动加载我的模块

# config/application.rb
config.autoload_paths += %W(#{config.root}/lib/notifications)

这有时可以完美运行,有时会中断并引发错误“未初始化的常量 Notifications::GroupActions”

这是不一致的,它在请求中起作用并在后续引发此错误!!!...它可能会工作几天,休息几个小时,然后再次工作!

我注意到如果这个提示有帮助,它总是在重新启动服务器后的第一个请求上工作。

请帮忙

4

1 回答 1

0

我可能是错的,但只是一个疯狂的猜测。您包括通知模块(在此特定代码中 - 通知模块没有方法 group_actions)

我看到的是您使用 Notifications::GroupActions.do_something 的范围。


猜想1:内部控制器还包括GroupActions


猜想 2:在 Notofications 模块内添加另一个模块

module Notifications
  module GroupActions
    def self.do_something

猜想3:

尝试继承。

module Notifications < GroupActions

或者

module GroupActions < Notifications

希望这些解决方案中的任何一个都会有所帮助。

如果没有,对不起:)

于 2015-11-15T18:27:14.287 回答