繁体   English   中英

为什么我的模块没有加载到Rails中?

[英]Why my Module is not being loaded in Rails?

我有一个可以在OSX环境上完美运行的应用程序。 现在,我从头开始创建了一个Ubuntu env,在我的Rails应用程序上有一个奇怪的类加载问题。

在我的app / models / 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'

所以,我不知道为什么会这样。 也许是类加载器问题? 有人对尝试解决此问题有想法?

谢谢

在我的app / models / MDMS.rb中

您的文件应以snake_case命名。 在这种情况下,应将其命名为mdms.rb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM