I have an application.html.erb in views/layouts as usual, with <%= yield %> for content. Now I'm writing a settings page for user accounts which holds a bunch of different pages (profile, account, notifications, etc).
controllers/settings_controller.rb
class SettingsController < ApplicationController
end
controllers/settings/account_settings_controller.rb
class Settings::AccountSettingsController < ApplicationController
end
controllers/settings/profile_settings_controller.rb
class Settings::ProfileSettingsController < ApplicationController
end
For every controller that is part of the Settings namespace I'd like to "always render a view", in particular views/settings/master.html.erb which contains
<markup>
<%= yield(:settings_content) %>
</markup>
So for example the view settings/profile_settings/edit.html.erb would contain
<% content_for(:settings_content) do %>
<markup>
</markup>
<% end %>
I'm not sure where to start. Perhaps my controllers should look like
class Settings::AccountSettingsController < SettingsController
end
Any guidance is most welcome.
EDIT:
Rendered settings/account_settings/edit.html.erb within layouts/application (19.6ms)
should become
Rendered settings/master.html.erb within layouts/application (19.6ms)
Rendered settings/account_settings/edit.html.erb within settings/master (19.6ms)