0
初心者のご質問に申し訳ありません:別のアセットタイプ(ドキュメント、動画など)を持つプロジェクトがあります。別のアセットを追加したいのですがビデオと同じ機能を持つオーディオ用です。モデル/コントローラ/ビュー/テーブルを「ビデオ(複数可)」から「オーディオ(複数可)」に簡単に複製できる方法はありますか?異なるアセットタイプのモデル/コントローラ/ビュー全体を複製する方法
初心者のご質問に申し訳ありません:別のアセットタイプ(ドキュメント、動画など)を持つプロジェクトがあります。別のアセットを追加したいのですがビデオと同じ機能を持つオーディオ用です。モデル/コントローラ/ビュー/テーブルを「ビデオ(複数可)」から「オーディオ(複数可)」に簡単に複製できる方法はありますか?異なるアセットタイプのモデル/コントローラ/ビュー全体を複製する方法
Module
を書くことができますActiuveSupport::Convern
モデルに必要なすべてのメソッドが含まれていますinclude
あなたのモジュールに含まれているメソッドでモデルを拡張するモデルのモジュールです。このように:
module AwsomeModule
include ActiveSupport::Concern
module ClassMethods
# awesome class methods here
end
module InstanceMethods
# awesome instance methods here
end
end
次にモデルには単にモジュールが含まれています。あなたの部分Cannのアクセスに続いて
render 'layouts/awesome_partial', :object => @instance_var, :as => :data
変数data
を使用して、指定されたオブジェクトを:ビューのためには、このようなobject
とas
オプションを経由してパーシャルを使用し、それらにオブジェクトを与えることができます。
DRY :-)それほど似ている場合、同じMVCを使用しないのはなぜですか?別のテーブルが必要な場合は、一方のモデルでもう一方のモデルを拡張し、そのテーブル名を指定することができます... – aishwarya
これらの機能をパッケージ化するモジュールを作成してみませんか?または、継承を使用するだけです。また、あなたが幻想的な行動を感じるなら、メタプログラミングの余分なトッピングを伴う継承さえも...それは本当にあなた次第で、達成しようとしていることです。あなたが紛失してしまった場合、ちょうどデザインパターンに関するいくつかの研究を行います(私はこのトピックでAddison Wesleyの "ルビーのデザインパターン"の本を見つけました) –