Rails, почему этот помощник выводит не HTML, а HTML в кавычках? - PullRequest
8 голосов
/ 07 октября 2010

В моем файле application_helper.rb есть следующий помощник:

  def topmenu
    pages = {
      "projects" => projects_path,
      "photos" => photos_path
    }
    pages.map do |key, value|
      classnames = %( class="current") if controller.controller_name == key
      "<li#{classnames}>#{link_to(key, value)}</li>"
    end
  end

Затем в моем файле application.html.erb есть:

<%= topmenu %>

По какой-то причинеСтраница генерирует, показывая HTML от вышеупомянутого помощника как ТЕКСТ, а не HTML.Не уверен почему?ТНХ

Ответы [ 2 ]

25 голосов
/ 07 октября 2010

Полагаю, вы используете rails3.Добавьте .html_safe вызов метода перед возвратом строки:

"<li#{classnames}>#{link_to(key, value)}</li>".html_safe
0 голосов
/ 07 октября 2010

Это делает код более чистым?Не так ли?И вы можете сделать больше в функции помощи (потому что это не только HTML)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...