読者です 読者をやめる 読者になる 読者になる

グロースエンジニアのブログ

プログラミングとウェブ解析をやっています。Googleアナリティクス好きなRuby on Rails エンジニアです!

ビューに関するヘルパーメソッドはapp/helperへ 〜RailsによるアジャイルWebアプリケーション開発 by Rails4〜

Rails

Railsに限らず、プログラミングを初めてする人にとって、こういうhelperディレクトリって何に使うの?libディレクトリってどういうときに使うの?ってのが分からん。

実際に本で見て、初めてその使い方を知った!これは便利!!

メニューのアクティブ時にクラス追加

グローバルメニューってどうやって作るのが正解なんか。。。

ま、それは置いといて、メニューのページが表示されたら【active】クラスを追加したい。それを【app/helper/application_helper.erb】に書く。

def activate_li_if(condition, attributes = {}, &block)
  if condition
    attributes["class"] = "active"
  end
  content_tag("li", attributes, &block)
end

これを実際のビューで使うとこんな感じ。

<div class="collapse navbar-collapse">
  <ul class="nav navbar-nav">
    <%= activate_li_if(params[:controller] == 'menu1' && params[:action] == 'index',) do %>
      <%= link_to 'メニュー', menu1_index_path %>
    <% end %>
  </ul>
</div>

これで対象ページならactiveクラスが追加される!

Rails4でのメニューの表示ってどうやるのが一般的なんかな?

 その辺りの知識について、本・サイトなど「こうやって書くのが普通だよ〜」ってのがまとまっているものなど知っている方がいれば紹介してほしいです!!