Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从Rails中的另一个视图将另一个控制器操作渲染为部分_Ruby On Rails - Fatal编程技术网

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

Ruby on rails 从Rails中的另一个视图将另一个控制器操作渲染为部分,ruby-on-rails,Ruby On Rails,在我看来,我试图从另一个控制器(例如controllerB)渲染部分(例如在controllerA中)。分部正在使用静态内容正确呈现,但尝试访问实例变量时失败。实例变量由controllerB中的一个操作实例化,但在简单地呈现部分对象时,永远不会调用此操作 是否有一种方法可以在渲染部分之前调用操作?请尝试使用此方法 render 'posts/show' 我将在posts\u控制器内呈现show action。您能试试这个吗 render 'posts/show' 我将在posts\u控制器

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


是否有一种方法可以在渲染部分之前调用操作?

请尝试使用此方法

render 'posts/show'

我将在posts\u控制器内呈现show action。

您能试试这个吗

render 'posts/show'

我将在posts\u控制器内呈现show action。

呈现模板/部分时,它使用的实例变量必须存在。如果模板/分部属于另一个操作,则正在执行的操作负责初始化分部使用的所有实例变量

一般来说,一个动作直接执行其他控制器的动作不是一个好主意。引导流程的正确方法是使用
redirect\u to

redirect_to post_url(@post)

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

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

一般来说,一个动作直接执行其他控制器的动作不是一个好主意。引导流程的正确方法是使用
redirect\u to

redirect_to post_url(@post)

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

在出现错误的地方共享一些代码。可能是您的控制器操作、视图、部分。请在出现错误的地方共享一些代码。可能是您的控制器操作、视图、部分。