Как мне добавить span в link_to с изображением - PullRequest
10 голосов
/ 14 января 2011

Итак, у меня есть это:

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

17 голосов
/ 14 января 2011

Подайте блок на ваш 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 %>
12 голосов
/ 14 января 2011

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}"}) %>

Однако, как вы можете видеть, это становится довольно грязным - возможно, стоит перенести его в вспомогательный метод.

0 голосов
/ 30 января 2016

Для пути используйте такую ​​структуру, как

<%= link_to edit_section_path(@section) do %>
   Edit
   <span class="fa fa-list pull-right"></span>
<% end %>
0 голосов
/ 29 июня 2014

Haml хорошо подходит для подобных ситуаций. Например:

= 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)}

Стоит учиться, если вы хотите писать свои взгляды быстрее и лучше их читать.

...