2016-04-13 6 views
0

どのように他のコントローラでテンプレートを別のビューにレンダリングできますか?私はモーダルで 'index'テンプレートを生成したいが、このモーダルは他のコントローラで他のビューで生成される。だから、他の 'index'アクションのために設定しなければならないコントローラ内にオブジェクトを作成する必要があります。 enter image description here別のコントローラで別のビューでテンプレートをレンダリングする

答えて

2

あなたは他のコントローラのビューで使用されているすべての必要なインスタンス変数を定義し、あなたが好きな場所、それをレンダリングすることができます、あなたは(モーダルボックスの内容のように)いくつかの要素を共有している場合

render "other_controller/action" 

より良い方法は、共有部分(shared/_your_partial.html.erb)にそれを抽出し、それを他のビューに含めることです。それはもっとモジュラーな方法です。

また、あなたはそうのようなモーダルボックスの内容に記入するのjQueryを使用する場合があります:

$('#some-button').click(function(event){ 
    event.preventDefault(); 
    $('#modal-box').load('controller2/index'); 
}); 
+0

をしかし、私たちは一つに二つのコントローラを混入しなければならないでくださいより良いアイデアを考え;) – Kam

+0

2つの論理的に異なるコントローラを混在させないでください。共有された機能を持っている場合は、それを抽出して再利用してください。基本的にSRP&DRYの原則。 – Uzbekjon

関連する問題