我的项目中有一个cron作业,这个作业执行模型。
class Example < ActiveRecord::Base
def self.test
number = getNumber(1)
end
def getNumber(i)
value = 2 + i
return value
end
end
如何访问函数getNumber?
答案 0 :(得分:1)
你的getNumber方法(应该是get_number
)是一个实例方法,所以你需要调用Example.new.get_number(1)
但是如其他人所提到的那样它是无状态的,所以也可以是一个类方法所以这样可行:
class Example < ActiveRecord::Base
def self.test
number = get_number(1)
end
def self.get_number(i)
value = 2 + i
return value
end
end
答案 1 :(得分:0)
在self.test
范围内,您在课堂上(不在实例中)。当你调用getNumber
时,Ruby将寻找一个类方法。你上面有一个实例方法。如果您将代码从def getNumber(i)
更改为def self.getNumber(i)
,则会执行您想要的操作。
class Example < ActiveRecord::Base
def self.test
number = getNumber(1)
end
def self.getNumber(i)
value = 2 + i
return value
end
end
puts Example.test
运行时会输出3
。