Ruby On Rails - 在控制器中扩展模块

时间:2017-02-23 07:46:02

标签: ruby ruby-on-rails-4 module

我在lib文件夹中有如下的Module log_exception:

/lib/log_exception.rb

module LogException
  def Log(e, message="")
    Rails.logger.error "#{message}: #{e.message}"
    e.backtrace[0..13].each {|line| Rails.logger.error line}
  end
end

extend LogException

现在我尝试在此控制器中直接使用Log方法(将类模块作为模块扩展):

Log(e, "Error in home action of DashboardController")

但它给了我以下错误:

undefined method `Log' for #<DashboardController

我还在我的application.rb

中设置了以下内容
config.autoload_paths += %W(#{config.root}/lib)

如果我在Model(User)的任何一个中扩展相同的模块,并调用与

相同的方法
User.Log(e, "Error in home action of DashboardController")

然后它工作正常,但不是控制器。

我尝试了各种选择,但没有运气。

有人能解释我的错误吗?或者我如何在控制器中扩展模块?

0 个答案:

没有答案