我的问题:我想在我的lib文件夹中创建一个类TitlePanel,该类使用content_tag方法,但我无法弄清楚如何加载它。我已经尝试了所有我想到的'xxx'并且它一直给我错误消息,它无法找到所需的文件。
基本上,我要做的是创建一个生成html的帮助器,但我必须先通过一个类来存储一些值。除了我想做的事情:
title = TitlePanel.new("this is my title")
title.add_panel "help" do
content_tag :div, "this is the help section..."
end
title.add_panel "search" do
content_tag :div, "this is the search section..."
end
title.to_s
输出是使这项工作所需的所有HTML。
答案 0 :(得分:9)
给它一个机会。如果在lib目录中的文件顶部包含TagHelper,它应该可以工作。这是一个例子:
class MyLib
include ActionView::Helpers::TagHelper
def foo(x)
content_tag :div, x
end
end
>> MyLib.new.foo "bar"
=> "<div>bar</div>"
答案 1 :(得分:9)
这是一个老问题,但我发现了这个问题,并且遇到了与OP相同的问题。我发现的最佳解决方案是使用它:
ActionController::Base.helpers.content_tag(:div, nil, class: 'my_div')