在庫管理のRailsアプリを書いています。と がclass Product < ActiveRecord::Base
ありclass Foo < Product
ますclass Bar < Product
。Foo と Bar の動作は微妙に異なりますが、単一テーブルの継承を使用することは優れています。
問題はコントローラーとビューにあります。現在、私はそれらを完全に分離していますが、これは機能しますが、繰り返されるコードが大量に含まれています。2 つのディレクトリをコピーし、、、およびを@foo
、、および に置き換えることで、文字通り一方を他方から生成できます。新しい機能を追加するとき、それらを 2 回追加するのはイライラします。そしてもちろん、DRY をしないのは Rails のやり方ではありません。@foos
Foo
@bar
@bars
Bar
では、ここでの正しいアプローチは何ですか? コントローラーの場合... を作成してProductsController
から、メタプログラミングの魔法を使用して、またはのいずれかをサブスクライブする必要がありますFoo
かBar
? それとも継承を使用しますか?/foos
ビューについては、製品ビューのみを使用する必要がありますが、巧妙なルーティングを使用して、個別の (およびRESTful な)/bars
パスがあるように見せますか?
ありがとう。