web-dev-qa-db-fra.com

link_to tag image. comment ajouter une classe à une balise

J'utilise link_to img tag comme suit

<%= link_to image_tag("Search.png", :border=>0, :class => 'dock-item'), 
:action => 'search', :controller => 'pages'%><span>Search</span></a>

Ce qui a pour conséquence de suivre html

<a href="/pages/search"><img alt="Search" border="0" class="dock-item" 
src="/images/Search.png?1264132800" /></a><span>Search</span></a> 

Je veux que la classe = "dock-item" aille à la balise <a> au lieu de la balise img. 

Comment puis-je changer cela?

Mettre à jour:

<%= link_to image_tag("Search.png", :border=>0), :action => 'search', 
:controller => 'pages', :class => 'dock-item' %>

résulte en

<a href="/pages/search?class=dock-item"><img alt="Search" border="0" 
src="/images/Search.png?1264132800" /></a> 
88
Omnipresent

salut tu peux essayer

link_to image_tag("Search.png", border: 0), {action: 'search', controller: 'pages'}, {class: 'dock-item'}

ou même

link_to image_tag("Search.png", border: 0), {action: 'search', controller: 'pages'}, class: 'dock-item'

notez que la position des accolades est très importante, car si vous les manquez, Rails assumera qu’ils ne forment qu’un seul paramètre de hachage (en savoir plus à ce sujet ici )

et selon le api pour link_to :

link_to(name, options = {}, html_options = nil)
  1. le premier paramètre est la chaîne à afficher (ou ce peut être aussi un image_tag)
  2. le second est le paramètre pour l'url du lien
  3. le dernier élément est le paramètre facultatif permettant de déclarer la balise HTML, par exemple. classe, échange, etc.

j'espère que ça aide! =)

132
Staelen

En ajoutant simplement que vous pouvez transmettre à la méthode link_to un bloc:

<%= link_to href: 'http://www.example.com/' do %>
    <%= image_tag 'happyface.png', width: 136, height: 67, alt: 'a face that is unnervingly happy'%>
<% end %>

résulte en:

<a href="/?href=http%3A%2F%2Fhttp://www.example.com/k%2F">
    <img alt="a face that is unnervingly happy" height="67" src="/assets/happyface.png" width="136">
</a>

Cela a permis de sauver des vies lorsque le concepteur m'a donné des liens complexes avec des effets de renversement fantaisie css3.

25
Starkers

Le mieux sera:

link_to image_tag("Search.png", :border => 0, :alt => '', :title => ''), pages_search_path, :class => 'dock-item'
17
Ravinesh

c'est ma solution:

<%= link_to root_path do %>
   <%= image_tag "image.jpg", class: "some class here" %>
<% end %>
8
Jack Daniel

Facile:

<%= link_to image_tag("Search.png", :border=>0), :action => 'search', :controller => 'pages', :class => 'dock-item' %>

Le premier paramètre de link_to est le texte/html à lier (dans la balise a ). Le prochain ensemble de paramètres est constitué des propriétés de l'URL et des attributs de lien eux-mêmes.

6
Toby Hede

Pour répondre à votre question mise à jour, utilisez http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html ...

Soyez prudent lorsque vous utilisez le style d'argument plus ancien, car un hachage littéral supplémentaire est nécessaire:

  link_to "Articles", { :controller => "articles" }, :id => "news", :class => "article"
  # => <a href="/articles" class="article" id="news">Articles</a>

Laisser le hachage donne le mauvais lien:

  link_to "WRONG!", :controller => "articles", :id => "news", :class => "article"
  # => <a href="/articles/index/news?class=article">WRONG!</a>
2
Randy Simon

Tout le :action =>, :controller => peu que j'ai vu autour de beaucoup n'a pas fonctionné pour moi. 

J'ai passé des heures à creuser et cette méthode a définitivement fonctionné pour moi en boucle. 

<%=link_to( image_tag(participant.user.profile_pic.url(:small)), user_path(participant.user), :class=>"work") %>

Ruby on Rails utilisant link_to avec image_tag

De plus, j'utilise Rails 4. 

2
vandoona

J'ai aussi essayé cela et fonctionne très bien:

      <%= link_to home_index_path do %>
      <div class='logo-container'>
        <div class='logo'>
          <%= image_tag('bar.ico') %>
        </div>
        <div class='brand' style='font-size: large;'>
          .BAR
        </div>
      </div>
      <% end %>
1
Daniel Guzmán

Salut les gars, c’est un bon moyen de créer un lien avec l’image et d’avoir de nombreux accessoires au cas où vous voudriez attribuer un attribut CSS, par exemple, remplacer "alt" ou "title", etc.

<%= link_to image_tag("#{request.ssl? ? @image_domain_secure : @image_domain}/images/linkImage.png", {:alt=>"Alt title", :title=>"Link title"}) , "http://www.site.com"%>

J'espère que cela t'aides!

0
d1jhoni1b

Vous pouvez aussi essayer ceci

<li><%= link_to "", application_welcome_path, class: "navbar-brand metas-logo"    %></li>

Où "metas-logo" est une classe css avec une image de fond

0
ksan
<%= link_to root_path do %><%= image_tag("Search.png",:alt=>'Vivek',:title=>'Vivek',:class=>'dock-item')%><%= content_tag(:span, "Search").html_safe%><% end %>
0
Vivek Kapoor