私は CMS を gem のサブセットとして構築しています。これらはすべて Base gem から継承されています。各 gem は、ブログ、ページ、イベントなど、さまざまな機能を提供します。Base gem をセットアップして、インストールされた gem に基づいてナビゲーションを動的に構築できるようにしたいと考えています。すべてのコントローラー/ルートを見つけてこれを自動的に実行したくはありません。むしろ、各 gem にナビゲーション項目をハッシュの配列として識別させたいのです。つまり、次のようになります。
# In my Admin controller (from which all other gem controllers inherit)
@admin_navigation = [{controller: "users", label: "Users", sort_order: 10}, {controller: "settings", label: "Settings", sort_order: 11}]
# In my Pages gem
@admin_navigation += [{controller: "pages", label: "Pages", sort_order: 3}, {controller: "page_templates", label: "Pagetemplates", sort_order: 8}]
# In my blog gem
@admin_navigation += [{controller: "posts", label: "Blog", sort_order: 4}, {controller: "tags", label: "Tags", sort_order: 5}]
基本的に、@admin_navigation 変数に、継承された各コントローラーからのすべてのナビゲーション項目を含めたいと考えています。コントローラーが継承された各コントローラーからメソッドを呼び出す方法はありますか?
これを達成するためのより良い方法はありますか?最後に、メニューを作成するために必要なのは、これらのナビゲーション アイテム ハッシュの配列だけです。前もって感謝します!