2016-07-30 37 views
1

我想在另一個控制器(例如controllerB)中渲染一個部分(例如controllerA),在我看來。部分使用靜態內容正確呈現,但在嘗試訪問實例變量時失敗。實例變量由controllerB中的動作實例化,但僅當渲染局部時,此動作永遠不會被調用。在另一個視圖渲染另一個控制器動作在Rails中的部分

有沒有辦法在渲染部分之前調用動作?

+0

分享一些你得到錯誤的代碼。可能是您的控制器操作,視圖,部分。 –

回答

0

當您渲染模板/部分時,它使用的實例變量必須存在。如果模板/部分屬於另一個操作,則執行該操作的責任是初始化部分使用的所有實例變量。

通常,對於直接執行其他控制器操作的操作而言,這不是一個好主意。直接流量的正確方法是使用redirect_to

redirect_to post_url(@post) 

但是,因爲你關注的是局部的,只是初始化當前操作中所有必要的變量。

0

你可以試試這個嗎?

render 'posts/show' 

我會渲染顯示posts_controller行動。

相關問題