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网络中的每个站点都是自己的应用程序,但需要从单个应用程序获取页面顶部的标题?在这些情况下,这可能是有用的。