効率的な開発を!Ruby on Railsでrenderメソッドを使う方法【初心者向け】

初心者向けにRuby on Railsで使うrenderメソッドについて解説しています。renderは部分をテンプレートを呼び出すことができ、実際の開発でも便利なためよく使われます。ぜひ使い方を覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

RubyのフレームワークのRuby on Railsにはrenderという呼び出し機能が備わっています。renderはViewとControllerそれぞれに使用することができます。今回はそれぞれでrenderを使用してどのような挙動をするのか確認してみましょう。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回はrenderメソッドについての解説を行うよ。

大石ゆかり

田島メンター!!renderは何をするメソッドなんですか〜?

田島悠介

Railsでは部分テンプレートといって、よく使う部分や何度も使いたい部分を呼び出して利用することができるんだ。renderはその呼び出しに使用されるよ。

大石ゆかり

何だか便利そうですね。やってみたいです!

 

vIewでrenderを使用してみる。

それでは実際にviewでrenderを使用してみましょう。viewでrenderを使用する際は主に、そのview内で部分テンプレートを適用するために使用されます。言葉で説明しても分かりにくいと思いますので実際に使用してみましょう。railsで作成したディレクトリ内で操作をします。

#app/views/index.html.erb

<p>
  main
</p>

#app/views/_headder.html.erb

<p>
  headder
</p>

#app/views/_footer.html.erb

<p>
  footer
</p>

上記のように入力してください。

これだけでは表示画像は以下のようになりフッターやヘッダーが読み込まれていない事がわかります。(この画像ではわかりやすくするためフォントサイズと背景色を変更しています。)

728455047a8d0eb8d7f4ab4425147316-300x172

田島悠介

index.html.erbと同じフォルダ内に「_header.html.erb」というファイルと「_footer.html.erb」というファイルを作成し、それぞれに何か分かりやすいように見出しテキストを入れておこう。

大石ゆかり

えーと、それじゃ「header」と「footer」って書いておきますね。

田島悠介

ではその2つのパーツを、index.html.erbでrenderを使って呼び出してみようか。

 

それではindex.html.erbを以下のように変更してみてください。

#app/views/index.html.erb

<%= render 'headder'%>
<p>
  main
</p>
<%= render 'footer'%>

すると、index内にfooterとheadderが読み込まれていることがわかります。

fa39a7ce64f156a35e811fa11fe8de86-300x351

また、renderで読み込むファイルは、_footerや、_headderのように、冒頭にアンダーバーをつけるようにしてください。

 

controllerでrenderを使用してみる。

それでは次にコントローラーで使用してみましょう。

コントローラーで使用する分にも役割自体は変わらず、”viewを表示する”という役割を持っています。

def index

  render action: :new

end

とすると同じコントローラー内のnewアクションに対応するviewを表示することができます。また、

def index

  render template: "user/new"

end

とすると、違うコントローラー内のアクションでも呼び出すことが可能になります。

 

田島悠介

indexで他のテンプレートをレンダリングした場合、画面ではどうなってるかな?

大石ゆかり

アドレスはindexのままなのに、指定したテンプレートが表示されていますね。なんだか不思議な感じです。

田島悠介

このようにコントローラーで使う場合は他のテンプレートを丸ごと持ってくることができるんだ。ビューで使った場合と合わせて覚えておこう。

大石ゆかり

色々試してみます。ありがとうございました!

 

今回はrenderについて簡単に解説しました。renderはviewの表示を簡単に行うことができます。是非使いこなせるようにしておきましょう。

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。