我试图在我的视图中从另一个控制器(例如controllerB)渲染部分(例如在controllerA中)。部分使用静态内容正确呈现,但在尝试访问实例变量时,它会失败。实例变量由controllerB中的动作实例化,但在简单渲染部分时不会调用此动作。
有没有办法在渲染部分之前调用动作?
答案 0 :(得分:0)
你能试试这个吗?
render 'posts/show'
我将在 posts_controller 中呈现 show 动作。
答案 1 :(得分:0)
渲染模板/部分时,必须使用它使用的实例变量。如果模板/部分属于另一个操作,则执行操作的责任是初始化部分使用的所有实例变量。
通常,直接执行其他控制器操作的操作不是一个好主意。指导流程的正确方法是使用redirect_to
redirect_to post_url(@post)
但是,由于您的关注是局部的,只需初始化当前操作中的所有必要变量。