我有一个在我的OSX环境上完美运行的应用程序。现在,我正在从头开始创建一个Ubuntu Env,并在Rails应用程序上有一个奇怪的类加载问题。
在我的应用程序/型号/mdms.rb中,我有
class MDMS
include HTTParty
base_uri APP_CONFIG.mdms_url
def self.ip2location(ip)
Rails.cache.fetch("MDMS#ip2location(#{ip || 'empty'})", expires_in: 15.days) do
request("/api/v1/ip2location", { ip: ip })[:data]
end
end
,在我的application_controller中,我打电话给此模型。这样:
if @zip.blank?
byebug
#guess from IP
#r = MDMS.ip2location(request.remote_ip)
r = MDMS.ip2location("216.189.182.112")
@zip = session[:zip] = r['zip_code']
update_user_zip_attributes(r)
if !@zip.blank?
set_legacy_zip_cookie(r['zip_code'])
end
end
问题是。当我尝试运行它时,我会有一个错误:
NoMethodError (undefined method `ip2location' for MDMS:Module):
app/controllers/application_controller.rb:90:in `current_zip'
所以,我不知道为什么会发生这种情况。也许是classloader问题?有人想解决这个问题吗?
谢谢
在我的应用程序/型号/mdms.rb中,我有
您的文件应在snake_case中命名。在这种特殊情况下,应将其命名为mdms.rb