滞在しているページごとにサイドバーに表示させるリストの内容を変更したかったので
if文を使い行っていたが、条件が多くなるに連れて可読性が悪くなってきたため、
case文でコードを書き直したが条件分岐が行われなかった。
if文でviewに書いたコード
- if params[:controller] == 'users' && params[:action] == 'show'
case文を使い書き直したコード
- case params[:controller]
- when 'users' && params[:action] == 'show'
teratailで質問し解決したのでメモ。
https://teratail.com/questions/184492
下記のようにすることでコントローラーのアクションごとに異なるviewの切り替えを実現できた。
- case params.values_at :controller, :action
- when ['rooms', 'show']