Доступ к модулю в каталоге lib (Ruby on rails)
Я пытаюсь получить доступ к функции в модуле, который находится в каталоге 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 или с моего контроллера, оба раза я получаю метод undefined. Любые идеи?
Ответы
Ответ 1
В консоли/контроллере:
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
Для вызова метода модуля непосредственно включите его в класс, а затем вызовите его в экземпляре класса.
Class call_module_method
include Search
end
Теперь
call_module_method.new.zip_code_perimeter_search(zip, radius)
будет оценивать код внутри метода zip_code_perimeter_search(zip, radius)