本厚木のエンジニアブログではある

日々の開発で出たエラーや日常などいろいろ書いていくブログです。

Rails 表示中のページを判定する方法 複数のcurrent_page?を判定する方法

Railsで表示中のページを判定する方法

以下のようなパターンでいけます!

current_page?(root_path)

current_page?(action: 'index')

current_page?(controller: 'shop', action: 'index')

current_page?(controller: 'shop', action: 'index', order: 'asc')

current_page?('http://hoge.com/hoge/login')

current_page?('/users/login')

current_page? を複数まとめて書きたい場合

current_page? が◯◯か△△か□□のときにclassを追加する的な条件があったので以下のように書いた

current_page?(root_path, ◯◯_path, □□_path) はもちろんだめです

<%= ' active' if %w[hoge moge huga].any? { |name| current_page?(send("#{name}_path")) } %>

パーセント記法を使って配列を作りany?メソッドを使ってどれかにマッチすればみたいにしています。 sendがないとただの文字列になってしまうので忘れずに!