renderメソッドを使ってビューテンプレートを呼び出してみます。
class BooksController < ApplicationController
def show
render :show
end
end
render :showで行われていること
ここで表示するテンプレートはapp/views/books/show.html.erbファイルになります。
※ renderの省略が可能です。省略した場合は暗黙的にrender アクション名と解釈されます。
コンテンツのタイプによって表示を出し分けてみます。(HTML、JSON、XMLなどのフォーマットがあります)respond_toブロックを使用して出し分けするのが一般的です。
def show
respond_to do |format|
# htmlフォーマット
format.html
# jsonフォーマット
format.json { render json: @book }
end
end
format.htmlはrender :show, format: :htmlと同じ意味です。HTMLテンプレートでshowアクションのテンプレートを参照します。
JSONの場合も同様です。format.jsonはrender :show, format: :jsonと同じ意味です。show.json.erbファイルを参照しにいきます。
上記の例ではformat.jsonにブロックを渡しています。この場合はテンプレートを探さずに@bookオブジェクトをJSONにしたデータを返す指定にしています。books/1.jsonにアクセスすると下記のような表示がされます。

リダイレクト処理
redirect_toメソッドを使います。アプリケーションのパスやURLを渡します。
redirect_toとrenderの使い分け:データの更新/削除、inputやformなど何かデータを送る処理しているか、ログインなどの成否判断の処理をしているかです。この場合はredirect_toを使います。