我在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
返回
MyClassName的未定义方法`doSomething':Class
如何正确调用此方法?
答案 0 :(得分:3)
你已经用一个实例方法编写了一个类,所以如果你想用它来编写它,你需要写一下:
mcn = MyClassName.new
mcn.doSomething
(通过创建实例,然后在该实例上调用该方法)
如果您想要的是类方法,请将其定义为:
class MyClassName
def self.doSomething
...
end
...
end
并将其称为:MyClassName.doSomething
答案 1 :(得分:0)
class MyClassName
def self.doSomething
...
end
...
end
答案 2 :(得分:0)
你已经制作了实例方法而不是类方法,改变你的代码如下,加上我建议你不要把它作为一个类使它成为一个模块并包含在你的模型中并从模型中调用doSomething。
class MyClassName
def self.doSomething
...
end
...
end
class UsersController < ApplicationController
require 'my_class_name'
def show_stats
MyClassName.doSomething()
end
end
答案 3 :(得分:0)
如果您希望按原样运行(只需稍加更改),那么您应该创建一个MyClassName实例,例如: :: MyClassName。 new .doSomething()
class MyClassName
def doSomething
...
end
...
end
class UsersController < ApplicationController
require 'my_class_name'
def show_stats
::MyClassName.new.doSomething()
end
end