我正在尝试访问位于我的应用程序的lib目录中的模块中的函数。 (lib / search.rb)
我实际上是想通过以下方式获取邮政编码搜索功能: http://joshhuckabee.com/simple-zip-code-perimeter-search-rails
LIB / search.rb
module Search
def zip_code_perimeter_search(zip, radius)
#code
end
end
我试图从rails控制台或我的控制器调用zip_code_perimeter_search函数,两次都得到未定义的方法。有什么想法吗?
答案 0 :(得分:15)
在你的控制台/控制器中:
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/**/"]
答案 1 :(得分:2)
对于调用模块方法,直接将其包含在类中,然后在类实例上调用它。
Class call_module_method
include Search
end
现在
call_module_method.new.zip_code_perimeter_search(zip, radius)
将评估方法zip_code_perimeter_search(zip, radius)