用其他文件夹覆盖布局文件夹路径

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常用的布局管理器都有哪些,简述各布局管理器的布局特点

为啥在eclipes为创建一个android布局文件在R中没有自动生成

从android框架覆盖布局xml

Flex弹性盒布局

自定义视图布局线覆盖 API 16 中的其他元素

ZooKeeper学习之文件系统的布局和格式