我想在另一個控制器(例如controllerB)中渲染一個部分(例如controllerA),在我看來。部分使用靜態內容正確呈現,但在嘗試訪問實例變量時失敗。實例變量由controllerB中的動作實例化,但僅當渲染局部時,此動作永遠不會被調用。在另一個視圖渲染另一個控制器動作在Rails中的部分
有沒有辦法在渲染部分之前調用動作?
我想在另一個控制器(例如controllerB)中渲染一個部分(例如controllerA),在我看來。部分使用靜態內容正確呈現,但在嘗試訪問實例變量時失敗。實例變量由controllerB中的動作實例化,但僅當渲染局部時,此動作永遠不會被調用。在另一個視圖渲染另一個控制器動作在Rails中的部分
有沒有辦法在渲染部分之前調用動作?
當您渲染模板/部分時,它使用的實例變量必須存在。如果模板/部分屬於另一個操作,則執行該操作的責任是初始化部分使用的所有實例變量。
通常,對於直接執行其他控制器操作的操作而言,這不是一個好主意。直接流量的正確方法是使用redirect_to
redirect_to post_url(@post)
但是,因爲你關注的是局部的,只是初始化當前操作中所有必要的變量。
你可以試試這個嗎?
render 'posts/show'
我會渲染顯示posts_controller內行動。
分享一些你得到錯誤的代碼。可能是您的控制器操作,視圖,部分。 –