如何在lib / class中使用content_tag

时间:2010-06-04 14:32:34

标签: ruby-on-rails

我的问题:我想在我的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。

2 个答案:

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