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

Omn*_*ent 89 ruby-on-rails

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

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

这导致以下html

<a href="/pages/search"><img alt="Search" border="0" class="dock-item" 
src="/images/Search.png?1264132800" /></a><span>Search</span></a> 
Run Code Online (Sandbox Code Playgroud)

我希望class ="dock-item"转到<a>标签而不是img标签.

我怎么能改变这个?

更新:

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

结果是

<a href="/pages/search?class=dock-item"><img alt="Search" border="0" 
src="/images/Search.png?1264132800" /></a> 
Run Code Online (Sandbox Code Playgroud)

Sta*_*len 135

嗨你可以尝试这样做

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

甚至

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

请注意,花括号的位置非常重要,因为如果你错过了它们,rails会假设它们形成一个哈希参数(在这里阅读更多相关信息)

并根据link_toapi:

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

希望能帮助到你!=)


Sta*_*ers 27

只需添加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 %>
Run Code Online (Sandbox Code Playgroud)

结果是:

<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>
Run Code Online (Sandbox Code Playgroud)

当设计师给我复杂的链接以及奇特的css3翻转效果时,这已经成为一种生命保护.


小智 18

最好的将是:

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


Jac*_*iel 9

这是我的解决方案:

<%= link_to root_path do %>
   <%= image_tag "image.jpg", class: "some class here" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)


Tob*_*ede 6

简单:

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

的第一个参数的link_to是text/html的链接(里面一个标签).下一组参数是url属性和链接属性本身.