用其他文件夹覆盖layouts文件夹路径



在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'

你可以给你的布局传递一个绝对路径。最好是相对于您的Rails.root文件夹进行操作,这样它就可以在本地和生产机器上工作。如

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

最新更新