0

私のwebappにはがあり、PartsController素晴らしくうまく機能します。ビューに適切なデータを送信して、ビューがチャート/統計/データなどをレンダリングできるようにし、すべてが完全に機能するようにします。

これで、パーツを組み合わせて製品にすることができる別の機能がアプリに追加されました。そして今、ProductController基本的にパーツコントローラーとまったく同じ動作を維持したい、つまり、パーツコントローラーから存在するビューを再利用したいが、ビューに別のデータを送信するだけです。PartsControllerあるデータをProductController送信し、他のデータをビューに送信しますが、もちろんそれらは同じタイプになります。

これを行う最善の方法は何ですか?たぶん、productcontroller が parts controller を継承するためでしょうか? これは、レールでコントローラーの特定のメソッドをオーバーライドすることも可能ですが、同じビューを使用することはできますか?

4

1 に答える 1

1

PartsControllerと の間でコントローラーのロジックを共有したくないようですProductController。ビューだけです。その場合は、テンプレートを共通のディレクトリに配置し、コントローラーで次のようにしてレンダリングします。

 # imagine the templates are in app/views/products
 render 'products/action_name'

さらにコントローラ ロジックを共有したい場合は、いくつかのオプションがあります。

  1. どちらも共通のスーパークラスから継承します
  2. 一方は他方から継承します (そして、選択したメソッドをオーバーライドします)
  3. どちらincludeも共通Module
于 2013-07-16T10:55:42.587 に答える