访问lib目录中的模块(Ruby on rails)

时间:2011-03-07 15:22:27

标签: ruby-on-rails

我正在尝试访问位于我的应用程序的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函数,两次都得到未定义的方法。有什么想法吗?

2 个答案:

答案 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)

中的代码