在模型的 lib 文件夹中包含 class

Include class from lib folder in model

我的 lib 文件夹中有一个 class,其中有两个要在应用程序、规范和 rake 命令中使用的方法。

class 看起来像:

class LibClass

  def method_1
    ...
  end

  def method_2(item)
    ...
  end
end

在我的模型中,我有:

require "lib_clas"

class Model < ApplicationRecord

  def model_method
    LibClass.method_1
  end

end

我得到的错误是:

NoMethodError: undefined method `method_1' for LibClass:Class

这里的问题是您试图通过 class 调用实例方法。如果你想访问实例方法,你应该首先为 class 实例化一个对象。

你能做出以下改变吗?

LibClass.method_1LibClass.new.method_1

您可以在此处阅读更多相关信息:https://medium.com/@weberzt/class-vs-instance-methods-in-ruby-da4de44ac6a0