LoginSignup
0
0

More than 3 years have passed since last update.

renderで与えれんだー

Posted at

はじめに

 JavaScriptでも、Railsでも登場したので、まとめておく。正確にはJSの学習中に、出てきただけで、記述方法や言語はRubyである。

renderメソッドとは

 renderの訳は「与える」。つまり、何かを与えるときに使うメソッド。では、何を与えるのか。
 
 ここでは3種類の使い方を紹介する。3つに共通しているのは「レスポンスとして返している」ということ。

部分テンプレートを与える

railsで、共通するHTMLを一つのファイルにまとめ、必要な箇所に代入のような形で呼び出す。この仕組みを部分テンプレートである。
 部分テンプレートのメリットは、
・同じコードを何度も書かなくて済む。(使いまわせる)
・変更があった場合、修正する箇所が少なくて済む。
・一つのファイルの記述量が減り、読みやすくなる。
などが考えられる。

部分テンプレートのポイント

呼び出し方法

<% render partial: "test" %>

test.html.erb」というファイルを呼び出している。(同じ階層にファイルがある場合)
partialオプションを使って、呼び出すファイルを指定する。
※ファイル名は「
(アンダースコア)」から始める。
※部分テンプレート内で変数を用いる場合はlocalオプションを用いるが、今回は割愛する。

レスポンスの形式を指定して与える

 JSを用いてAjax(非同期通信)を行うには、ファイルとしてサーバーをやりとりをするのではなく、データ形式でやりとりを行う。その際、Railsでは、デフォルトでファイル形式でをレスポンスを返すことになっているので、renderメソッドを用いて、形式を変えることができる。

レスポンス形式の指定のポイント

例えばコントローラーで、

def new
 post = Post.new
 render json: { post: post }
end

{ post: post }をjson形式でレシポンスしているということになる。Ajaxでは頻出。

viewを与える

 例えば、railsでのコントローラーで、

 render 'ファイル名'

とすると、指定した、ファイルを表示させることができる。
よく似た使い方にredirect_toメソッドがあるが、こちらは、ルーティングやコントローラーを経由して、ビューを表示させる。renderメソッドは、経由せず、直接表示するという違いがある。

ポイント

  •  「与えている」というイメージを大切に。
  •  redirect_toメソッドの使い分けに注意。

最後に

 共通して言えるのは、どれもレスポンスとして返しているということ。他にも、ただ文字列を返すだけ、など様々な使い方がある。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0