こんにちは。菜笑なえです。
今回は「Rails link_toメソッドをブロックにして、要素をネストさせる方法」という内容で書いていきます。
目次
事象
一行で書いていたlink_to
を、ブロックにして要素をで囲もうとした時のミスについて。
コード状況
一行で書いていたとき。
= link_to(表示名, root_path)
これをブロックにしたいと思い書いたもの。
= link_to(表示名, root_path) do
%p ネスト
NoMethodError
と言われました。
解決方法
こちらで解決です。
= link_to root_path do
= 表示名
%p ネスト
クラスをつけたい場合はこちら。
= link_to root_path, class: 'link' do
= 表示名
%p ネスト
上記はHamlですがERBの場合はこちら。
<%= link_to root_path, class: 'link' do %>
表示名
<p>ネスト</p>
<% end %>
ブロックにしたら表示名は、ブロックの中に書くことです。
おわりに
普段はERBを使用して、link_to
をブロックで書くこともよくあるんですが、Hamlになった途端あれ?となりました。
結局はどちらで書いても同じなので、落ち着いてコードを見ていきたいと思います。
参考文献
ありがとうございます!