2011-08-21 24 views
8

¿Cómo puedo tener una etiqueta de imagen vinculando al archivo background.jpg en mi público/imágenes y cuando hago clic en redirigir al usuario a la raíz_url (Entonces el contenido de la página está en un contenedor y si el el usuario hace clic en la imagen de fondo se redirige a su casa?) ¡Gracias!Rails 3: link_to y image_tag

+1

si una de las respuestas resuelve su dilema, acéptelo. ¡Gracias! – Tass

Respuesta

14

Claro:

<%= link_to(image_tag("background.jpg", :alt => "home image", :width => 100, :height => 100, :title => "Click here to return to Home") "/") %> 
+0

Al hacer esto, el enlace no se estira verticalmente para llenar la pantalla aunque la imagen sí lo haga. Por lo tanto, si hace clic en los primeros píxeles de la ventana del navegador, se le redirige, pero si hace clic en cualquier otro lugar, no lo hace. ¿Tienes una solución para esto? – user852974

+0

Acaba de agregarse en ancho y alto para mostrarle. Sin embargo, eso seguro parece que el CSS para las áreas alrededor del enlace tiene problemas. – jschorr

+0

La solución satisface la pregunta. Digo que no prestamos atención al comportamiento de CSS, ya que está más allá del alcance de esta discusión. – Tass

4

que estaba buscando lo mismo, mientras que hace, y me encontré con los rieles manera de hacerlo.

Digamos que usted quiere que la página HTML para hacer follwoing código

<a title="Return Home" class="logo" href="/pages/home"> 
<img width="200" height="50" src="logo.png" alt="Logo Image"> 
</a> 

Donde 'páginas' es el controlador y 'casa' es la acción. Aquí está el camino de Rails.

<%=link_to(image_tag("12roots-logo.png",:size => "209x50", :alt=> "12roots"), 
{:controller=>"pages", :action=>"home"}, :title=>"Return Home", :class=>"logo") %> 
6

La mayoría de helpers de etiquetas carriles aceptar un bloque, lo que significa que puede utilizar do para simplificar su vida. Aquí, he utilizado un bloque con link_to:

<%= link_to root_url do %> 
    <%= image_tag "background.jpg" %> 
<% end %> 

En este caso, link_to espera que el siguiente parámetro que es el camino y el bloque emite lo que las envolturas de anclaje.

En general trato de mantener el un tag helper por línea regla a menos que sea súper trivial, así que prefiera esta técnica cuando la línea se llene de otra manera. Una ventaja de hacerlo de esta manera es que las etiquetas están en diferentes líneas, los errores son más fáciles de identificar.

Si necesita otras opciones para combinar, agréguelas como lo haría normalmente. Por ejemplo, agregaré una clase css:

<%= link_to root_url, :class => 'imagelink' do %> 
    ...