優れた継承リソースの宝石は私のRailsアプリケーションではかなり使用されていますが、プレゼンターを使用するときはいつでも、コントローラを手作業で書くことに戻ります。継承されたリソースを持つプレゼンターを使用する
継承されたリソースをDraperやdelegate_presenterのようなものと組み合わせるには、きれいなソリューションがありますか?
優れた継承リソースの宝石は私のRailsアプリケーションではかなり使用されていますが、プレゼンターを使用するときはいつでも、コントローラを手作業で書くことに戻ります。継承されたリソースを持つプレゼンターを使用する
継承されたリソースをDraperやdelegate_presenterのようなものと組み合わせるには、きれいなソリューションがありますか?
投稿者delegate_presenter
ここに。
delegate_presenter
は、inherited_resources
で正常に動作します。今私は実際にプロジェクトでは、inherited_resourcesを使用していないので、これは多くのreadmeからです。
とにかく私はいつもビュー内にプレゼンターオブジェクトを作成します:todo_present = Present(@todo)
などです。
あなたは(のようなLegalTodo
は、いくつかの湿原、不明な理由で、Todo
のサブクラスである)共通のソースからのテンプレートを持っている、とあなたがテンプレートを共有している場合、あなたはテンプレートでこれを行うことができます:
presenter = Present(resource)
resource
- 少なくともinherited_resourcesのreadmeによると - 現在のリソースのためのヘルパーは、あなたの(そう、@todo
、または@legal_todo
)を見ている
Present()
を見ていきますオブジェクトのクラスを生成し、適切なプレゼンターオブジェクトをインスタンス化する。 TodoPresenter
resource
がTodo
オブジェクトを返した場合、resource
がLegalTodo
オブジェクトを返す場合は、LegalTodoPresenter
オブジェクトを返します。
そして、それらのプレゼンターは、多形性あると仮定すると、プレゼンターは、(「LegalTodo
の名前が記述+寄託番号であってもよいが、Todo
項目の名前だけで説明する必要があります」)離れ違いますが、抽象ようになる - にもあなたがビューを共有する場合!