Ответ 1
Вы должны использовать блок
= link_to "path/to/page.html" do
Other page
%span.icon Arrow
Можно ли добавить html-контент внутри хелпера link_to в HAML?
Я пробовал это, но все, что я получаю, является синтаксической ошибкой:
= link_to "Other page", "path/to/page.html"
%span.icon Arrow
ожидаемый вывод:
<a href="path/to/page.html">Other Page<span class="icon">Arrow</span></a>
Вы должны использовать блок
= link_to "path/to/page.html" do
Other page
%span.icon Arrow
Если кто-то все еще использует Rails 2.x в проекте, похоже, что принятый ответ возвращает блок, таким образом дублируя ссылку в разметке. Очень простое изменение: используйте -
вместо =
- link_to "path/to/page.html" do
Other page
%span.icon Arrow
Самый простой способ сделать это - использовать html_safe или raw функции
= link_to 'Other Page<span class="icon"></span>'.html_safe, "path/to/page.html"
или используя функцию raw (рекомендуется)
= link_to raw('Other Page<span class="icon"></span>'), "path/to/page.html"
Просто, как только может получиться!
Не используйте метод html_safe, если вы не уверены, что ваша строка не равна нулю. Вместо этого используйте метод raw(), который не будет создавать исключение на nil.