2009-03-27 13 views
2

は、私は次のクラスとSTIを使用してRailsのサイトを持っていますページコントローラによって。しかし、検出されたオブジェクトが実際にLandingPageのインスタンスである場合、私はLandingPagesコントローラのアクションを呼び出すようにしたいと思います。 (たとえば、子コントローラクラスのshowメソッドは、必ずしも適切ではない特定のルックアップを取り込みます)。RailsのSTIコントローラ

これを最も効果的に行う方法についてのご意見はありますか?あなたはMVCの区別を曇らせているよう

おかげ

答えて

1

はこれが少し聞こえるが、それはなんとかする必要があります。

ページモデル(例:supports_buzzbar_foo?またはwiggums_itemization_controller)に一連のテストを追加し、ビューでこれらを使用して、必要なコントローラメソッドへの適切なリンクを条件付きで生成します。

あなたはそれぞれの部分を(大まかに)保っています。

0

Markusの解決策が有効です。また、ページを指すビュー内にリンクを保持し、着信オブジェクトを評価してから、オブジェクトクラスに基づいて適切なコントローラにリダイレクトすることもできます。

しかし、オブジェクトの種類ごとに完全に異なるアクションを実行しているのでなければ、コントローラにコードが重複してしまうことになります。したがって、Pagesコントローラーを使用し、そのオブジェクトに必要な特別なルックアップを処理するいくつかのメソッドを追加する方がよい場合があります。

関連する問題