やったこと
Rails5 のレイアウトをコントローラ単位で適用する方法について調べました。
今回はコントローラに明示的に設定せずに、適用する方法を試します。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
調査
app/views/layouts/tasks.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Task-Sample2</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<p>Taskのレイアウト<p>
<%= yield %>
</body>
</html>
下記のようなコントローラがあるとします。
app/controllers/tasks_controller.rb
class TasksController < ApplicationController
def new
end
end
コントローラ側では特に指定しなくても、レイアウトが切り替わります。