Helpers - компьютеры, интернет, программирование

Rails: добавление пустого тега и контента в link_to

Я пытаюсь сгенерировать ссылку с помощью помощника link_to, который выведет следующий HTML:

<a href="some_url"><i class="some_class"></i>Link Name</a>

Однако код, который я использую, чтобы попытаться выполнить это:

link_to(tag("i", class: options[:icon]) + title, url)

...выводит:

<a href="some_url"><i class="some_class">Link Name</i></a>

Почему это происходит, и как я могу это исправить? Спасибо.

EDIT:
Кажется, я нашел проблему.

Теги <i> не являются самозакрывающимися тегами в HTML5. Поэтому текст после i рассматривается как содержимое этого элемента.

31.08.2012

  • link_to((tag(i, class: options[:icon])+title), url), попробуйте это 01.09.2012
  • @prem Я пробовал это раньше. Тот же результат. Я не уверен, почему рельсы помещают текстовое содержимое внутри в то, что должно быть пустым тегом. 01.09.2012

Ответы:


1

Вы пробовали использовать блочный формат link_to?

<%= link_to url do %>
  <%= tag("i", class: options[:icon]) %>
  Link Name
<% end %>

Настройте это в соответствии с вашими потребностями, и, возможно, вы получите то, что ищете.

31.08.2012

2

Это помощник тега значка, который я использую в своих приложениях, и который я часто передаю в качестве первого аргумента для link_to, который можно использовать либо для создания одного тега значка, либо для тега значка, за которым следует текст.

  def icon_tag(icon, *args)
    options = args.extract_options!
    text = args.first || options.delete(:text)
    if text.nil?
      content_tag :i, "", class: ["icon", "icon-#{icon}"] + options[:class].to_a
    else
      "#{icon_tag icon} #{text}".html_safe
    end
  end
31.08.2012
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..