我在lib目录(文件这种方法my_class_name.rb
):
class MyClassName
def doSomething
...
end
...
end
控制器:
class UsersController < ApplicationController
require 'my_class_name'
def show_stats
::MyClassName.doSomething()
end
end
回报
未定义的方法`doSomething的”为MyClassName:类
如何正确地调用这个方法?
你已经写了有一个实例方法的类,所以如果你想打电话给它,你怎么都写过,你需要这样写:
mcn = MyClassName.new
mcn.doSomething
(通过创建一个实例,然后调用该实例的方法)
如果你想要的是一个类的方法,将其定义为:
class MyClassName
def self.doSomething
...
end
...
end
并调用它像: MyClassName.doSomething
class MyClassName
def self.doSomething
...
end
...
end
你已经做了和实例方法不是类的方法,改变你的代码如下,再加上我会建议你,而不是使其作为一类编译成模块,包括在你的模型,并从模型调用的doSomething的。
class MyClassName
def self.doSomething
...
end
...
end
class UsersController < ApplicationController
require 'my_class_name'
def show_stats
MyClassName.doSomething()
end
end
如果您正在寻找使其工作的是(有微小的变化),那么您应该创建MyClassName例如:: MyClassName的一个实例。 新 .doSomething()
class MyClassName
def doSomething
...
end
...
end
class UsersController < ApplicationController
require 'my_class_name'
def show_stats
::MyClassName.new.doSomething()
end
end