假设我有一个名为Lead的模型和一个名为functions的控制器方法。 Lead模型有一个名为grab的方法。
def functions
Lead.grab(data)
puts newdata
end
def grab(data)
newdata = data + 20
return newdata
end
为什么这不起作用?传递newdata变量,但如果没有未定义的错误,函数方法似乎无法使用它。
答案 0 :(得分:1)
你应该有newdata = Lead.grab(data)
。抓取功能中的变量newdata
超出了控制器的范围,因此您无法使用它。您必须将控制器中的变量设置为返回值Lead.grab(data)
。
答案 1 :(得分:0)
您正在尝试定义名为Lead
的方法。你的意思是Lead.grab
?
我希望它更像是
class Lead
def Lead.grab(data)
...
end
end
当您致电functions
时,没有任何名为data
的内容,因此您可能会收到此错误
undefined method or local variable, 'data'
该数据变量必须来自某个地方。也许
init_data = 30
data = Lead.grab(init_data)
puts data
# 50
答案 2 :(得分:0)
尝试在Lead模型中使用self.grab(数据)...结尾
这里抓取的是一个实例方法而不是类,你通过模型调用,所以使用self来获取一个类方法。