2016-07-30 6 views
1

私のビューでは、別のコントローラ(コントローラAなど)から部分的にレンダリングしようとしています。部分は静的コンテンツで正しくレンダリングされますが、インスタンス変数にアクセスしようとすると失敗します。インスタンス変数は、controllerBのアクションによってインスタンス化されますが、単純に部分をレンダリングするときはこのアクションは呼び出されません。他のコントローラのアクションを部分的にRailsの別のビューからレンダリングする

部分をレンダリングする前にアクションを呼び出す方法はありますか?

+0

は、エラーが発生しているコードを共有しています。あなたのコントローラのアクション、ビュー、部分的なものかもしれません。 –

答えて

0

テンプレート/部分をレンダリングするときは、使用するインスタンス変数が存在する必要があります。テンプレート/ partialが別のアクションに属している場合は、部分的に使用されるすべてのインスタンス変数を初期化するために実行されているアクションの責任があります。

一般に、アクションが他のコントローラのアクションを直接実行するのはあまり良い考えではありません。あなたの懸念は、部分的であるだけで、現在のアクション内のすべての必要な変数を初期化するので、流れを誘導する適切な方法は、redirect_to

redirect_to post_url(@post) 

を使用することです。しかし。

0

これを試してください。

render 'posts/show' 

私はposts_controllerの内部ショーアクションをレンダリングします。

関連する問題