Я хочу вывести следующие методы Ruby on Rails link_to
и image_tag
:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Что было бы хорошо в Rails?
Я хочу вывести следующие методы Ruby on Rails link_to
и image_tag
:
<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>
Что было бы хорошо в Rails?
Почему бы просто не использовать ссылку и тег изображения?
<%= link_to "hiii #{image_tag(yourimagepath)}", "link_path" %>
Вы также можете попробовать добавление, сделанное выше (string + image_tag
), но оно вызовет ошибку, если одна из этих вещей станет nil
. Используя интерполяцию, она просто покажет пустое изображение (или строку), если оно nil
.
Для Rails 3 вам нужно будет использовать html_safe
:
<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>
Вы можете использовать блоки как альтернативу интерполяции строк с правильным использованием html_safe
. Например:
<%= link_to '#' do %>
Lorem Ipsum <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>
Или более короткий путь
<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>
link_to(image_tag("image.png", :alt => "alt text", :class =>"anyclass"), image_url)
Я не могу понять, как добавить комментарий к ответу @corroded. Однако, если вы используете Rails 3, его ответ будет работать не так, как ожидалось. Не может быть сразу очевидно, как это исправить, по крайней мере, это было не для меня. Я знал, что мне нужно добавить html_safe, но поместите его в неправильное место. Оглядываясь назад, это было очевидно, но я думал, что включу его здесь для других, подобных мне, которые совершают ошибку "новобранец".
<%= link_to "hiii #{image_tag(yourimagepath)}".html_safe, "link_path" %>
будьте осторожны, если вы используете назначаемую пользователем переменную для "hiii", вам необходимо сначала ее дезинфицировать.
<%= link_to (h(my_model.some_string) + image_tag(yourimagepath)).html_safe,
"link_path" %>
Обратите внимание, что нет проблемы с my_model.some_string или yourimagepath, равным нулю, потому что как h(), так и image_tag() возвращают строки при передаче nil.
Я предпочитаю этот подход в HAML
= link_to root_path do
= image_tag "ic_launcher.png", size: "16x16"
Home
Здесь классный способ использовать link_to для включения изображения и mailto href с текстом (отображается рядом с изображением):
<%= link_to image_tag("image.png") + " [email protected]",
href: "mailto:[email protected]" %>
Предоставление вам что-то вроде этого в вашем представлении (все изображение и текст становятся mailto href):
Я узнал об этом и сработал.
link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank")
Для меня это работало просто отлично:
<%= link_to(image_tag(<URL>,style),<URL>) %>