我将您描述的助手放在我的lib/ 目录中的模块中。给定一些MyApp 应用程序,这将进入app/lib/my_app/helpers.rb 并看起来像
module MyApp
module Helpers
extend self
def some_method
# ...
end
end
end
接下来,您必须需要此模块。在config/initializers/my_app.rb 创建一个新的初始化器,看起来像
require 'my_app'
并确保config.autoload_paths 在config/application.rb 中包含您的lib/ 目录。
config.autoload_paths += Dir["#{config.root}/lib",
# other paths here...
]
最后,将模块包含在您想要使用的任何位置。 任何地方。
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
include MyApp::Helpers
app/helpers/application_helper.rb
module ApplicationHelper
include MyApp::Helpers
我认为这是一种在整个应用程序中管理可重用助手的更清洁、更可测试的方法。