как использовать content_tag в lib / class - PullRequest
11 голосов
/ 04 июня 2010

моя проблема: я хочу создать класс TitlePanel в моей папке lib, который использует метод 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 ]

9 голосов
/ 08 августа 2015

Это старый вопрос, но я нашел его первым и столкнулся с той же проблемой, что и OP. Лучшее решение, которое я нашел, было использовать это:

ActionController::Base.helpers.content_tag(:div, nil, class: 'my_div')
9 голосов
/ 04 июня 2010

Дайте этому шанс. Если вы включите TagHelper в верхней части вашего файла в каталоге lib, он должен работать. Вот пример:

class MyLib
  include ActionView::Helpers::TagHelper

  def foo(x)
    content_tag :div, x
  end
end


>> MyLib.new.foo "bar"
=> "<div>bar</div>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...