内部ApplicationController
我有:
class ApplicationController < ActionController::Base
include GeoHelper
在GeoHelper
内我有以下实例方法:
GeoHelper.instance_methods
=> [:get_ip, :maxmind_locate, :locate_ip, :relocate]
在StylesController
内部我在locate_ip
方法中运行show
没有问题,但是当我尝试从HearingAidsController
运行相同的方法时,我看到了:
undefined local variable or method `locate_ip' for HearingAidsController:Class
两个控制器都继承自ApplicationController
所以给出了什么?
我尝试重启我的服务器,但仍然看到错误。
更新
在这个特定的控制器中发生了一些非常奇怪的事情。即使只是将测试方法RIGHT INSIDE放入控制器并试图调用它,我也会遇到类似的错误。
def test_method
binding.pry
end
然后使用test_method
undefined local variable or method `test_method' for HearingAidsController:Class
答案 0 :(得分:0)
将头发拉出一个神秘的问题(带有误导性和无用的错误信息)后,我终于解决了问题。
如果不发布我的所有代码,问题是locate_ip
方法不在show方法之外!我从一个旧控制器粘贴了一些代码,并没有意识到我不小心用一个被复制的end
关闭了show方法。要把这个Q&amp; A留给其他遇到此问题的人。 计算这些目的!!