Доступ к модулю в директории lib (Ruby on rails) - PullRequest
10 голосов
/ 07 марта 2011

Я пытаюсь получить доступ к функции в модуле, который находится в каталоге lib моего приложения. (lib / search.rb)

Я на самом деле пытаюсь заставить работать поиск по почтовому индексу: http://joshhuckabee.com/simple-zip-code-perimeter-search-rails

Библиотека / search.rb

module Search
  def zip_code_perimeter_search(zip, radius)
   #code
  end
end

Я пытаюсь вызвать функцию zip_code_perimeter_search из консоли rails или из моего контроллера, оба раза я получаю неопределенный метод. Есть идеи?

Ответы [ 2 ]

15 голосов
/ 07 марта 2011

В вашей консоли / контроллере:

include Search
zip_code_perimeter_search(zip, radius)

Если он не загружается автоматически в Rails 3, в файле config / application.rb вы можете сделать это:

# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += Dir["#{config.root}/lib/**/"]
2 голосов
/ 26 ноября 2014

Для вызова метода модуля напрямую включите его в класс, а затем вызовите его в экземпляре класса.

Class call_module_method
    include Search
end

Теперь

call_module_method.new.zip_code_perimeter_search(zip, radius)

оценит код внутри метода zip_code_perimeter_search(zip, radius)

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