我正在使用rails 3.1.10。我想写几个方法,我可以从任何视图调用。我发现this问题非常有帮助。
我做了什么: 1.创建了一个模块lib / unbxd_api.rb:
module UnbxdApi
require 'net/http'
def method1
end
def method2
end
end
在app / helpers / application_helper.rb
中module ApplicationHelper
include UnbxdApi
但是我收到以下错误:
`<module:ApplicationHelper>': uninitialized constant ApplicationHelper::UnbxdApi (NameError)
为什么我会收到此错误,我该如何解决?
答案 0 :(得分:2)
因为Rails不再加载lib目录。你必须明确地说:
config.autoload_paths += Dir["#{config.root}/lib/**/"]
在 config / application.rb 文件中。
注意:如果你想要一个可供所有视图文件使用的辅助方法,那么我建议你在 app / helpers / unbxd_api_helper.rb 中创建助手UnbxdApiHelper
。
答案 1 :(得分:1)
lib
文件夹中的文件未自动加载,您需要使用模块
require 'unbxd_api'
module ApplicationHelper
include UnbxdApi
end