1. ホーム
  2. ruby-on-rails

[解決済み] Rails: link_to image タグ.タグにクラスを追加する方法

2022-03-11 18:55:27

質問内容

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="/images/Search.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="/images/Search.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 for link_to :

link_to(name, options = {}, html_options = nil)

  1. 最初のパラメータは表示する文字列(image_tagでも可)です。
  2. 2番目はリンクのURLのパラメータです。
  3. 最後の項目は、htmlタグを宣言するためのオプションのパラメータです(例:class、onchange、など)。

お役に立てれば幸いです。=)