2016-07-30 26 views
1

我想在另一个控制器(例如controllerB)中渲染一个部分(例如controllerA),在我看来。部分使用静态内容正确呈现,但在尝试访问实例变量时失败。实例变量由controllerB中的动作实例化,但仅当渲染局部时,此动作永远不会被调用。在另一个视图渲染另一个控制器动作在Rails中的部分

有没有办法在渲染部分之前调用动作?

+0

分享一些你得到错误的代码。可能是您的控制器操作,视图,部分。 –

回答

0

当您渲染模板/部分时,它使用的实例变量必须存在。如果模板/部分属于另一个操作,则执行该操作的责任是初始化部分使用的所有实例变量。

通常,对于直接执行其他控制器操作的操作而言,这不是一个好主意。直接流量的正确方法是使用redirect_to

redirect_to post_url(@post) 

但是,因为你关注的是局部的,只是初始化当前操作中所有必要的变量。

0

你可以试试这个吗?

render 'posts/show' 

我会渲染显示posts_controller行动。

相关问题