link_to图片标签。 如何将类添加到标记

我正在使用link_to img标签,如下所示

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

这导致下面的HTML

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

我希望class =“dock-item”转到<a>标签,而不是img标签。

我怎样才能改变这个?

更新:

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

结果是

 <a href="/pages/search?class=dock-item"><img alt="Search" border="0" src="http://img.dovov.comSearch.png?1264132800" /></a> 

嗨,你可以尝试这样做

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

甚至

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

请注意,大括号的位置是非常重要的,因为如果你错过了它们,rails会认为它们形成一个散列参数( 在这里阅读更多关于这个)

并根据api的link_to :

 link_to(name, options = {}, html_options = nil) 
  1. 第一个参数是要显示的string(或者它也可以是一个image_tag)
  2. 第二个是链接的url的参数
  3. 最后一项是用于声明html标签的可选参数,例如class,onchange等

希望能帮助到你! =)

只要添加一下,你可以传递一个block的link_to方法:

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

结果是:

 <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> 

当devise师给我复杂的链接和幻想css3翻转效果时,这是一个生命的救星。

最好的将是:

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

这是我的解决scheme:

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

简单:

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

link_to的第一个参数是要链接的文本/ html(在a标签内)。 下一组参数是url属性和链接属性本身。

要回应您的更新的问题,根据http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html

使用旧的参数样式时要小心,因为需要额外的文字哈希值:

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

离开散列给出了错误的链接:

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

整个:action =>, :controller =>位,我见过很多没有为我工作。

花了几个小时挖,这个方法肯定对我来说是一个循环。

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

Ruby on Rails使用link_to和image_tag

另外,我正在使用Rails 4。

嘿家伙这是一个很好的方式链接瓦特/图像,并有很多道具,如果你想CSS属性例如replace“ALT”或“标题”等…..还包括逻辑限制(?)

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

希望这可以帮助!

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

你也可以试试这个

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

其中“metas-logo”是一个带有背景图片的css类

我也尝试过,效果很好:

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