1

Rails 很新,我正在构建我的路线以获得这样的嵌套控制器:

resources :companies do
  member do
    get 'operating_hour'
  end
  resources :services do
    member do
      get 'services'
    end
  end
end

现在,我的应用程序布局是这样的:

<body>
<%= render 'layouts/header' %>
<div class="container">
  <% flash.each do |key, value| %>
      <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>

  <% if main_side_view? %>
      <%= render 'layouts/main_side' %>
  <% elsif company_side_view %>
      <%= render 'layouts/company_side' %>
  <% else %>
      <h1><%= yield(:title) %></h1>
      <%= yield %>
  <% end %>

  <%= render 'layouts/footer' %>
</div>

除了嵌套(“服务”)控制器生成的所有内容外,我的布局一切正常。当我转到嵌套控制器的链接时,我的布局不存在!

有什么帮助吗?

4

1 回答 1

2

我认为你这样做是错误的。您应该创建几个布局:

一、layouts/application.html.erb

<%= render 'layouts/header' %>
<div class="container">
  <% flash.each do |key, value| %>
      <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>

   <h1><%= yield(:title) %></h1>
   <%= yield %>

  <%= render 'layouts/footer' %>
</div>

二、layouts/companies.html.erb

<%= render 'layouts/header' %>
<div class="container">
  <% flash.each do |key, value| %>
      <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>
  Your code for companies
</div>

请参阅指南: http: //guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts

您可以为 Flash 消息创建共享视图。

于 2012-07-20T17:40:33.857 回答