1

レールはかなり新しく、次のようなネストされたコントローラーを取得するためのルートを構築していました。

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

フラッシュメッセージの共有ビューを作成できます。

于 2012-07-20T17:40:33.857 に答える