У меня application.html.erb как обычно в view / layout, с <% = yield%> для контента. Сейчас я пишу страницу настроек для учетных записей пользователей, которая содержит множество разных страниц (профиль, учетная запись, уведомления и т. Д.).
Контроллеры / settings_controller.rb
class SettingsController < ApplicationController
end
Контроллеры / Настройки / account_settings_controller.rb
class Settings::AccountSettingsController < ApplicationController
end
Контроллеры / Настройки / profile_settings_controller.rb
class Settings::ProfileSettingsController < ApplicationController
end
Для каждого контроллера, который является частью пространства имен «Настройки», я бы хотел «всегда отображать представление», в частности views / settings / master.html.erb, который содержит
<markup>
<%= yield(:settings_content) %>
</markup>
Так, например, представление settings / profile_settings / edit.html.erb будет содержать
<% content_for(:settings_content) do %>
<markup>
</markup>
<% end %>
Я не уверен, с чего начать. Возможно, мои контроллеры должны выглядеть как
class Settings::AccountSettingsController < SettingsController
end
Любое руководство приветствуется.
EDIT:
Rendered settings/account_settings/edit.html.erb within layouts/application (19.6ms)
должно стать
Rendered settings/master.html.erb within layouts/application (19.6ms)
Rendered settings/account_settings/edit.html.erb within settings/master (19.6ms)