1

私の 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 %>

ここまで書いてきましたが、このままだとさらに長くなること間違いなしです。だからここに私の質問があります:

  1. このロジックはどこに配置すればよいですか?また、どのように呼び出す必要がありますか?
  2. current_page?これをレイアウトする最良の方法はありますか?
4

3 に答える 3