我需要在我的lib类中使用函数“image_path”。我试过这个(和其他几个变种):
class CustomHelpers::Base
include ActionView::Helpers::AssetTagHelper
def self.image_url(source)
abs_path = image_path(source)
unless abs_path =~ /^http/
abs_path = "#{request.protocol}#{request.host_with_port}#{abs_path}"
end
abs_path
end
end
但它没有用。我做得对吗?
另一个问题是,如何找到合适的课程?例如,如果我看一下这个模块:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html是否有经验法则如何将该模块包含在模型/库/类/其他任何内容中?
答案 0 :(得分:3)
您包含一个模块,因此其上的所有方法都在InstanceMethods中。
但你尝试通过ClassMethods调用它。
请尝试extend ActionView::Helpers::AssetTagHelper
,不要包含它
答案 1 :(得分:0)
最好将所有这些类放在某些目录下,并在autoload_paths
中包含此类路径。因此,如果必须包含 lib ,演示者和作业目录,那么我就可以在我的应用中自动加载它们。
<强>配置/ application.rb中强>
config.autoload_paths += ["#{config.root}/lib", './app/jobs', './app/presenters']