私の Rails アプリには、クライアントのサイトを構成するいくつかのコントローラーがあります。エンド ユーザーと管理者が事実上すべてのコントローラーを使用しています。
ナビゲーション リンクを含めるためのパーシャルを作成しました。私の問題は、それらを管理セクション内に表示したくないことです。これを難しくしている部分は、ナビゲーションが のようなものに対して表示されるべきである一方でpages/home
、/galleries
やのようなもの/galleries/5
に対して表示されるべきではないということ/pages/new
です /galleries/5/edit
。
これまでは にロジックを追加してきましたがapplication.html.erb
、次第に手に負えなくなり始めています。if ステートメントにあまりにも多くの規則があり、それについて汚いと感じています。次に例を示します。
application.html.erb からのスニペット
<% unless current_page?('/') or current_page?('/admin') or current_page?({action: :new}) %>
<%= render "layouts/top_links" %>
<% end %>
ここまで書いてきましたが、このままだとさらに長くなること間違いなしです。だからここに私の質問があります:
- このロジックはどこに配置すればよいですか?また、どのように呼び出す必要がありますか?
current_page?
これをレイアウトする最良の方法はありますか?