Как мне добавить span в link_to с изображением
Итак, у меня есть это:
<%= link_to(image_tag(@model.picture.url(:thumb), :alt => ''), "/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) %>
Что работает, но мне нужен промежуток между ними также, как это:
<a id="y_link_2" href="/pages/you/2" class="">
<span>Apples</span>
<img src="another_small.jpg?1236340989" alt="">
</a>
Как мне добавить
<span>Apples</span>
к link_to
?
4 ответа
Решение
image_tag
а также content_tag
вернуть основные строки, чтобы их можно было объединить с помощью +
Оператор легко:
<%= link_to(content_tag(:span, "Apples") + image_tag(@model.picture.url(:thumb), :alt => ''), "/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) %>
Однако, как вы можете видеть, это становится довольно грязным - возможно, стоит перенести его в вспомогательный метод.
Подайте блок на ваш link_to вызов:
<% link_to("/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) do %>
<%= content_tag(:span, 'Apples') %>
<%= image_tag(@model.picture.url(:thumb), :alt => '') %>
<% end %>
В качестве альтернативы:
<% link_to("/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) do %>
<span>Apples</span>
<%= image_tag(@model.picture.url(:thumb), :alt => '') %>
<% end %>
Для пути используйте структуру как
<%= link_to edit_section_path(@section) do %>
Edit
<span class="fa fa-list pull-right"></span>
<% end %>
Хамл хорошо подходит для подобных ситуаций. Например:
= link_to "/pages/you/#{something.id}", id: "y_link_#{something.id} do
%span Apples
= image_tag(@model.picture.url(:thumb), alt: '')
%a[something, 'y_link']{href: "/pages/you/#{something.id}"}
%span Apples
%img{src: @model.picture.url(:thumb)}
Стоит учиться, если вы хотите писать свои взгляды быстрее и читать их лучше.