ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。
今回は、レイアウトとレンダリングの章です。
render inline
リンクはこちら
ガイドの中でも「このオプションを実際に使う意味はめったにありません。」と記載がありますが、コントローラでerbを直接記載できます。
class BooksController < ApplicationController def index @books = Book.all render inline: "描画しました<br><%= @books %>" end end
レイアウトの探索順序
リンクはこちら
例えば/books/
のURLであれば、app/views/layout/books.html.erb
のレイアウトが一番優先で使われる。
renderでコレクションがない場合はnilを返す
リンクはこちら
コレクションがない場合にnilを返すので||
を使って、データがない場合の処理が書けるのは知らなかった。
<%= render(@books) || 'データはありません' %>
今までは↓みたいに書いていたの1行で簡単に書けるのは嬉しいです。
<% if @books.exists? %> <%= render @books %> <% else %> データはありません <% end %>