将另一个控制器操作渲染为Rails中另一个视图的部分操作

时间:2016-07-30 08:47:08

标签: ruby-on-rails

我试图在我的视图中从另一个控制器(例如controllerB)渲染部分(例如在controllerA中)。部分使用静态内容正确呈现,但在尝试访问实例变量时,它会失败。实例变量由controllerB中的动作实例化,但在简单渲染部分时不会调用此动作。

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

2 个答案:

答案 0 :(得分:0)

你能试试这个吗?

render 'posts/show'

我将在 posts_controller 中呈现 show 动作。

答案 1 :(得分:0)

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

通常,直接执行其他控制器操作的操作不是一个好主意。指导流程的正确方法是使用redirect_to

redirect_to post_url(@post)

但是,由于您的关注是局部的,只需初始化当前操作中的所有必要变量。