Может быть, у него есть техническая/реализация, но мне кажется, что "макет" примерно так же явно является частью уровня представления, каким он может быть, но Rails, похоже, разрешает указывать макет на уровне контроллера.
Мой контроллер не должен заботиться о макетах... шаблоны должны. Есть ли способ указать, какой макет использовать из файла .erb?
Что-то вроде:
<%= with_layout :news_feed do %>
<p>
My markup in here.
</p>
<% end %>
Или любую другую реализацию, о которой вы можете подумать... но документация, по-видимому, относится к макету с точки зрения контроллера.
Возможно, было бы сложно реализовать помощник with_layout
.
ИЗМЕНИТЬ | Я нашел именно то, что искал:
<% render :layout => "some_layout" do %>
<p>
My markup here
</p>
<% end %>
Теперь, если ваш ActionController имеет:
class ApplicationController < ActionController::Base
layout nil
Затем каждый шаблон может выбрать свой собственный макет, используя этот подход.
Если вы разместите макет в приложении/макетах, с именем, которое соответствует контроллеру, этот макет будет использоваться, поэтому вам не обязательно указывать, все ли они одинаковы. В любом случае, чувак, как пишет ваши шаблоны, теперь полностью контролирует его, а не чувак, который пишет контроллеры:)