Jan 12 2015
現在の記事の「tags」で設定しているタグを表示したい場合、リファレンスには以下のコードくらいしかタグの記述が見当たらなかった。
<ul> <% blog.tags.each do |tag, articles| %> <li> <h5><%= tag %></h5> <ul> <% articles.each do |article| %> <li><a href="<%= article.url %>"><%= article.title %></a></li> <% end %> </ul> <% end %> </ul>
このコードでは、今までのすべての記事のタグが表示されてしまう。現在の記事のタグだけを取得したい。 Rubyは全然触ったことがないので、なかなか悩んだ結果以下のコードで実現できた。
<%= current_page.data.tags %>
このコードで現在の記事のタグを表示できる。表示はできるが、それぞれのタグをHTMLで囲うことはできない。それを実現するためには、タグの文字列を配列にし繰り返し処理をしなくてはならない。
以下のようにsplit()
とeach
を使うと解決する。
<% current_page.data.tags.split(", ").each do |tag, articles| %> <li><a href="/tags/<%= tag %>.html"><%= tag %></a></li> <% end %>
これで求めている結果を取得できる + タグページへのリンクも付与することができる。
Ruby勉強しよう。