Почему мой модуль не загружается в Rails? - PullRequest
0 голосов
/ 01 июля 2019

У меня есть приложение, которое отлично работает в моей среде 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'

Итак, я не знаю, почему это происходит. Может быть, проблема с загрузчиком классов? У кого-то есть идеи о том, что попытаться решить эту проблему?

Спасибо

1 Ответ

2 голосов
/ 01 июля 2019

Внутри моего приложения / модели / MDMS.rb у меня есть

Ваши файлы должны быть названы в snake_case. В данном конкретном случае его следует назвать mdms.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...