【问题标题】: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 不,我很清楚。我想像布局一样使用它。请找到包含布局文件代码的更新问题

标签: ruby-on-rails ruby layout ruby-on-rails-3.2 views


【解决方案1】:

您可以将绝对路径传递给您的布局。最好相对于您的 Rails.root 文件夹执行此操作,以便它可以在本地和生产盒上运行。例如

layout File.join(Rails.root, "app/views/containers/users/_user_detail.html.erb")

【讨论】:

    猜你喜欢
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多