複数のコントローラーを含む Rails アプリがあります (Web サイトのさまざまなページ用)。通常のテキスト ページ用の 1 つのコントローラー、ギャラリーなど用の別のコントローラー。今、必要なのは、すべてのページの並べ替え可能なメニューです。
と呼ばれるモデルを作成しました。このモデルMenuItems
には、並べ替える必要があるすべてのモデルへの位置番号とポリモーフィックな関連付けがあります。
class MenuItem < ActiveRecord::Base
belongs_to :sortable, :polymorphic => true
end
問題は、MenuItems の一部が関連するモデル インスタンス自体を指す必要があることです (show
通常のテキスト ページのアクションのように)。しかしindex
、メニューにアクション (ギャラリーの一覧ページなど) をリストする必要もあり、モデルとコントローラーに複雑で不明確なロジックを記述するか、別のフィールドを追加する必要があることを実装する必要がありますurl
。管理者がこれらの URL を入力するためのインターフェイス。
私の経験からすると、レールで複雑な方法で何かを行うと、それは間違っています。しかし、最善のアプローチは何ですか?アプリケーションで複雑なメニューを通常どのように処理しますか?