Подтвердить что ты не робот

Link_to image_tag с внутренним текстом или html в рельсах

Я хочу вывести следующие методы Ruby on Rails link_to и image_tag:

<a href="#">Lorem Ipsum <img src="/images/menu-arrow-down.gif"></a>

Что было бы хорошо в Rails?

4b9b3361

Ответ 1

Почему бы просто не использовать ссылку и тег изображения?

<%= 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" %>

Ответ 2

Вы можете использовать блоки как альтернативу интерполяции строк с правильным использованием html_safe. Например:

<%= link_to '#' do %>
  Lorem Ipsum <%= image_tag('/images/menu-arrow-down.gif') %>
<% end %>

Ответ 3

Или более короткий путь

<%= link_to image_tag('image/someimage.png') + "Some text", some_path %>

Ответ 4

link_to(image_tag("image.png", :alt =>  "alt text", :class =>"anyclass"), image_url) 

Ответ 5

Я не могу понять, как добавить комментарий к ответу @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.

Ответ 6

Я предпочитаю этот подход в HAML

= link_to root_path do
  = image_tag "ic_launcher.png", size: "16x16"
  Home

Ответ 7

Здесь классный способ использовать link_to для включения изображения и mailto href с текстом (отображается рядом с изображением):

<%= link_to image_tag("image.png") + " [email protected]", 
                         href: "mailto:[email protected]" %>

Предоставление вам что-то вроде этого в вашем представлении (все изображение и текст становятся mailto href):

hyperlinked image and text with mailto

Ответ 8

Я узнал об этом и сработал.

link_to(image_tag("/images/linkd.png",:alt=>"twt"){},:href=>"some_url",:target=>"_blank")

Ответ 9

Для меня это работало просто отлично:

<%= link_to(image_tag(<URL>,style),<URL>) %>