2011-01-14 11 views
10

así que tengo esto:¿Cómo agrego un lapso en un link_to con una imagen

<%= link_to(image_tag(@model.picture.url(:thumb), :alt => ''), "/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) %> 

que trabaja, pero necesito un lapso en el medio también de esta manera:

<a id="y_link_2" href="/pages/you/2" class=""> 
    <span>Apples</span> 
    <img src="another_small.jpg?1236340989" alt=""> 
</a> 

Cómo hacer Agrego

<span>Apples</span> 

al link_to?

Respuesta

12

image_tag y content_tag retorno cadenas básicas, para que puedan ser concatenadas usando el operador + fácilmente:

<%= link_to(content_tag(:span, "Apples") + image_tag(@model.picture.url(:thumb), :alt => ''), "/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) %>

Sin embargo, como se puede ver, se pone bastante desordenado - podría valer la pena llevarla a una método de ayuda.

17

un bloque de alimentación a su llamada 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 %> 

alternativa:

<% link_to("/pages/you/#{something.id}", {:id => "y_link_#{something.id}"}) do %> 
    <span>Apples</span> 
    <%= image_tag(@model.picture.url(:thumb), :alt => '') %> 
<% end %> 
0

Haml se presta bien a situaciones como estas. Por ejemplo:

= link_to "/pages/you/#{something.id}", id: "y_link_#{something.id} do 
    %span Apples 
    = image_tag(@model.picture.url(:thumb), alt: '') 

Alternatively:

%a[something, 'y_link']{href: "/pages/you/#{something.id}"} 
    %span Apples 
    %img{src: @model.picture.url(:thumb)} 

Vale la pena aprender si desea escribir sus puntos de vista más rápido y leerlos mejor.

0

Para un trayecto, utilizar la estructura como tal

<%= link_to edit_section_path(@section) do %> 
    Edit 
    <span class="fa fa-list pull-right"></span> 
<% end %> 
Cuestiones relacionadas