
#動的にactiveクラスをlink_toに付与したい
BootstrapのDashboardサイドバーみたく.activeクラス
をRails
で動的にlink_to
に付与したい。
表示ページのサイドバー項目はbackground
が青色
になっています。
ul.nav.nav-pills.flex-column li.nav-item = link_to "action1" ,action1_path ,class:'nav-link active' ← このactiveを動的にしたい。 li.nav-item = link_to "action2" ,action2_path ,class:'nav-link' li.nav-item = link_to "action3" ,action3_path ,class:'nav-link'
こんな感じのコードだとすれば、どうすれば実装できるのでしょうか。
controller
を編集する必要があるのか、view
だけの編集で済むのか、
いまいちイメージができません。
ご教授いただける方、宜しくお願いします。
#追伸1
params[:action]
は使えませんか。
view
でコントローラの各アクション
を区別することはできませんか。
#追伸2 サイドバーのコードはパーシャルです。
これを前提にお願いします。
#追伸3
現状、正常に動く
- if controller.action_name == "show" li.nav-item = link_to "トップ" ,[:user,:mypage] ,class:'nav-link active' - else li.nav-item = link_to "トップ" ,[:user,:mypage] ,class:'nav-link' - if controller.action_name == "following" li.nav-item = link_to "フォロー" ,[:following,:user,:mypage] ,class:'nav-link active' - else li.nav-item = link_to "フォロー" ,[:following,:user,:mypage] ,class:'nav-link' - if controller.action_name == "clipping" li.nav-item = link_to "クリップ" ,[:clipping,:user,:mypage] ,class:'nav-link active' - else li.nav-item = link_to "クリップ" ,[:clipping,:user,:mypage] ,class:'nav-link'
現状、正常に動かない
li.nav-item = link_to "トップ" ,[:user,:mypage] ,class:"nav-link #{ active if controller.action_name == 'show'}" や li.nav-item = link_to "トップ" ,[:user,:mypage] ,class:"nav-link #{ active if params[:action: == 'show'}"
どうもこれだと動きません...。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/19 22:01