Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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_Ruby - Fatal编程技术网

Ruby on rails 如何在Rails中渲染链接

Ruby on rails 如何在Rails中渲染链接,ruby-on-rails,ruby,Ruby On Rails,Ruby,我对渲染有点困惑,不太确定它选择链接哪条路径 根据文件: 我们可以有明确的联系: render "/u/apps/warehouse_app/current/app/views/products/show" 但是,在/apps/view/layouts/application.html.erb中,如果我的页眉和页脚有垫片,我必须: render 'layout/header' 因此,它查找从../app/view/开始的路径,然后附加layout/_header.html.erb以获取文件

我对渲染有点困惑,不太确定它选择链接哪条路径

根据文件:

我们可以有明确的联系:

render "/u/apps/warehouse_app/current/app/views/products/show"
但是,在/apps/view/layouts/application.html.erb中,如果我的页眉和页脚有垫片,我必须:

render 'layout/header'
因此,它查找从../app/view/开始的路径,然后附加layout/_header.html.erb以获取文件。但是在rubyonrails.org上列出的使用显式链接的规则中,由leading/表示,有一个从根文件夹(/u/apps/…)开始的路径

因此,我的问题是在使用带前导/哪个是起始控制器的渲染时?它总是根目录,布局只是规则的一个例外吗

谢谢

应该是

render 'layout/header'
应该是

render 'layout/header'

我想你没有抓住这一点。render方法还可以使用完全在应用程序之外的视图(可能是在两个Rails应用程序之间共享视图):

Rails确定这是由于前导斜杠字符而导致的文件渲染

通常,如果要从另一个控制器添加视图文件,它将作为

render "prodcucts/show"
它将采用自动查看文件夹之前的路径。对于布局,您可以如上所述

render "layouts/header"

我想你没有抓住这一点。render方法还可以使用完全在应用程序之外的视图(可能是在两个Rails应用程序之间共享视图):

Rails确定这是由于前导斜杠字符而导致的文件渲染

通常,如果要从另一个控制器添加视图文件,它将作为

render "prodcucts/show"
它将采用自动查看文件夹之前的路径。对于布局,您可以如上所述

render "layouts/header"

我认为关于正确路径的混淆是因为您使用了第一个
render
选项来指向布局文件。这不是应该使用的布局方式

相反,您可以这样使用它们:

render 'users/show', layout: 'mylayout'
然而,在您的情况下,您真正想要使用的似乎是

类似这样的方法会奏效:

render 'shared/header'
文件名为
\u header.html.erb

文件中的两个重要注释:

对于在应用程序中的所有页面之间共享的内容,您可以直接使用版面中的部分

以及:

局部可以使用自己的布局文件,就像视图可以使用布局一样。例如,您可以这样调用分部:

“链接区域”:布局=>“灰条”%>

我认为关于正确路径的混淆是由于您使用了第一个
呈现
选项来指向布局文件。这不是应该使用的布局方式

相反,您可以这样使用它们:

render 'users/show', layout: 'mylayout'
然而,在您的情况下,您真正想要使用的似乎是

类似这样的方法会奏效:

render 'shared/header'
文件名为
\u header.html.erb

文件中的两个重要注释:

对于在应用程序中的所有页面之间共享的内容,您可以直接使用版面中的部分

以及:

局部可以使用自己的布局文件,就像视图可以使用布局一样。例如,您可以这样调用分部:

“链接区域”:布局=>“灰条”%>

是否在根目录之前具有前导/渲染?与render/u/apps类似,表示在u应用程序中显示的链接是你的,但如果你是应用程序u,我可以链接到/y/apps/…吗?是的,这就是我在上半部分的意思,当你给出像/y/apps/…这样的链接时,它可以完全从应用程序外部或从不同的应用程序获取视图。这是否真的有用?Saad认为多个应用程序相互通信。这种情况不应该经常发生,但可能您的
后端和
前端有不同的应用程序,或者StackExchange网络中的每个站点都是自己的应用程序,但需要从单个应用程序获取页面顶部的标题?在这些情况下,这可能会很有用。是否在根之前具有前导/渲染?与render/u/apps类似,表示在u应用程序中显示的链接是你的,但如果你是应用程序u,我可以链接到/y/apps/…吗?是的,这就是我在上半部分的意思,当你给出像/y/apps/…这样的链接时,它可以完全从应用程序外部或从不同的应用程序获取视图。这是否真的有用?Saad认为多个应用程序相互通信。这种情况不应该经常发生,但可能您的
后端和
前端有不同的应用程序,或者StackExchange网络中的每个站点都是自己的应用程序,但需要从单个应用程序获取页面顶部的标题?在这些情况下,这可能是有用的。