用其他文件夹覆盖布局文件夹路径
Posted
技术标签:
【中文标题】用其他文件夹覆盖布局文件夹路径【英文标题】:Override the layouts folder path with other folders 【发布时间】:2015-10-13 14:35:49 【问题描述】:在 Rails 应用程序(3.2 版)中,控制器必须根据特定操作内的不同条件使用条件布局。
def index
if dp_allowed?
//use a different layout
else
//render diff layout
end
end
现在,我尝试使用
layout :user_layout
def user_layout
if dp_allowed?
"file1"
else
"file2"
end
end
上面的代码总是期望 layouts 文件夹之后的路径是相对于 layouts 文件夹的。我怎样才能使用像app/views/containers/users/_user_detail.html.erb
这样的路径
编辑:
<div class="app-pane-header">
<div id="title" class="pane-title">
<%= yield :d_title %><%= yield :additional_title %></div>
<%= yield :details %>
在我的情况下,这是 file1,如果我只是使用它就可以完美地工作
layout 'file1'
【问题讨论】:
这看起来有点像。你确定你不只是想做render :partial
吗? render :partial
不会使用布局,它只会使用该部分作为模板。
@MaxWilliams 不,我很清楚。我想像布局一样使用它。请找到包含布局文件代码的更新问题
【参考方案1】:
您可以将绝对路径传递给您的布局。最好相对于您的 Rails.root
文件夹执行此操作,以便它可以在本地和生产盒上运行。例如
layout File.join(Rails.root, "app/views/containers/users/_user_detail.html.erb")
【讨论】:
以上是关于用其他文件夹覆盖布局文件夹路径的主要内容,如果未能解决你的问题,请参考以下文章
android常用的布局管理器都有哪些,简述各布局管理器的布局特点