0
どのように他のコントローラでテンプレートを別のビューにレンダリングできますか?私はモーダルで 'index'テンプレートを生成したいが、このモーダルは他のコントローラで他のビューで生成される。だから、他の 'index'アクションのために設定しなければならないコントローラ内にオブジェクトを作成する必要があります。 別のコントローラで別のビューでテンプレートをレンダリングする
どのように他のコントローラでテンプレートを別のビューにレンダリングできますか?私はモーダルで 'index'テンプレートを生成したいが、このモーダルは他のコントローラで他のビューで生成される。だから、他の 'index'アクションのために設定しなければならないコントローラ内にオブジェクトを作成する必要があります。 別のコントローラで別のビューでテンプレートをレンダリングする
あなたは他のコントローラのビューで使用されているすべての必要なインスタンス変数を定義し、あなたが好きな場所、それをレンダリングすることができます、あなたは(モーダルボックスの内容のように)いくつかの要素を共有している場合
render "other_controller/action"
より良い方法は、共有部分(shared/_your_partial.html.erb
)にそれを抽出し、それを他のビューに含めることです。それはもっとモジュラーな方法です。
また、あなたはそうのようなモーダルボックスの内容に記入するのjQueryを使用する場合があります:
$('#some-button').click(function(event){
event.preventDefault();
$('#modal-box').load('controller2/index');
});
をしかし、私たちは一つに二つのコントローラを混入しなければならないでくださいより良いアイデアを考え;) – Kam
2つの論理的に異なるコントローラを混在させないでください。共有された機能を持っている場合は、それを抽出して再利用してください。基本的にSRP&DRYの原則。 – Uzbekjon