【Ruby】Railsを利用して画像にリンクを貼りたい【link_to】


背景

Bootstrapを用いてリンクを装飾しようと意図したとき、適用されずあれ?ってなったので備忘録です

結論

「link_toメソッド内にclassを指定するオプションが存在した」

事象

そもそもなぜこの問題が起こったかですがa要素にclassを適用して、a要素の中にlink_toメソッドを記載していました。(以下のコード)

問題のコード

index.hetml
<a class="nav-link" href=""> 
 <%= link_to('tweetApp',"/") %> 
</a> 

実際に作成されたHTMLを見ると、、、

index.html
<a class="nav-link" href=""></a> 
<a href="/">tweetApp</a> 

あれ?a要素の中にlink_toメソッドを記載したはずなのに飛び出てますね

ここでおかしいと思い調べたところどうやらlink_toメソッド内にclassを指定してあげることでlink_toから生成されるa要素にcssが適用されるみたいです。

解決方法

書式
link_to(リンクテキスト, パス [, オプション, HTML属性 or イベント属性])

実際のコード(今回はtext-lihgtを使用しています)

index.html
<%= link_to("tweetApp","/",class: "text-light"%>

生成されたhtml

index.html
<li class="nav-item">
 <a class="nav-link" href="">tweetApp</a>
</li>

無事a要素にcssが適用されました。

参考

Railsドキュメント:ビューについて