如何编写所有视图都可访问的方法

时间:2014-09-16 06:21:07

标签: ruby-on-rails ruby

我正在使用rails 3.1.10。我想写几个方法,我可以从任何视图调用。我发现this问题非常有帮助。

我做了什么: 1.创建了一个模块lib / unbxd_api.rb:

module UnbxdApi
    require 'net/http'

    def method1
    end

    def method2
    end
end
  1. 在app / helpers / application_helper.rb

    module ApplicationHelper
        include UnbxdApi
    
  2. 但是我收到以下错误:

    `<module:ApplicationHelper>': uninitialized constant ApplicationHelper::UnbxdApi (NameError)
    

    为什么我会收到此错误,我该如何解决?

2 个答案:

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