...

【Rails】renderメソッドで出来ることまとめ

Railsのrenderメソッドで出来ることまとめ

どうもおはようポテト(@ohayoupoteto22)です。

renderメソッドってちょくちょく使うけど結局何ができるん?

ということで今回は

renderメソッドでできることを大まかに思い出したい

という方に向けてRailsの「renderメソッドで出来ること」をまとめました。

初学者の備忘録ゆえ至らない点もあると思いますが参考になれば幸いです⸝⸝- ̫ -⸝⸝

ブログ主

早速いってみよう!

 

renderメソッドのオプションまとめ

オプション概要
action違うアクションのテンプレートを呼ぶ
template違うフォルダ(コントローラー)にあるテンプレートを呼ぶ
fileアプリの外部のテンプレートを呼ぶ
plain文字列をそのまま出力する
htmlHTMLタグを出力する
inlineerbでの実行結果を出力する
jsonJSON形式で出力する
xmlXML形式で出力する
てことでそれぞれを見ていくよ

ソロモン

 

renderメソッドで出来ることまとめ

テンプレートを呼ぶ

違うアクションのテンプレートを呼ぶ

render action: "show"

オプションでactionを指定することによって違うアクションのテンプレートを呼ぶことができます。

上の例でいうと、本来ならばfoods#indexアクションが呼び出すテンプレートはfoods/index.html.erbですが、今回はfoods/show.html.erbになります。

render "show"

オプションを省略することもできます。

 

違うフォルダにあるテンプレートを呼ぶ

render template: "meats/show"

オプションでtemplateを指定することによって違うフォルダ(コントローラー)にあるテンプレートを呼ぶことができます。

上の例でいうと、今回はmeats/show.html.erbになります。

render "foods/show"

オプションを省略することも。

 

違うアプリのテンプレートを呼ぶ

render file: "(絶対パス)"

オプションでfileを指定することでアプリの外部のテンプレートを呼ぶことができます。

テンプレートは絶対パスで指定してあげるカタチで。

render "(絶対パス)"

オプションを省略することも。

 

テンプレートに出力する

文字列をそのまま出力する

render plain: "<h2>黒毛和牛</h2>"

オプションでplainを指定することで文字列をそのまま出力することができます。

 

ブログ主

文字列にタグを含めてもタグとはみなされないんだね

 

HTML要素を出力する

render html: "<h2>黒毛和牛</h2>".html_safe

オプションでhtmlを指定することでHTMLタグを出力することができます。

HTMLタグを出力するときは「html.safe」を使うのを忘れずにだね

ソロモン

 

erbのコードを出力する

render inline: "<h2><%= '黒毛' + '和牛' %></h2>"

オプションでinlineを指定することでerbでの実行結果を出力することができます。

 

 

JSON形式で出力する

@foods=Food.all
render json: @foods

オプションでjsonを指定することでJSON形式で出力することができます。

上の例でいうとfoodsテーブルのリレーションオブジェクトを出力してます。

 

 

XML形式で出力する

@foods=Food.all
render xml: @foods

オプションでxmlを指定することでXML形式で出力することができます。

上の例でいうとfoodsテーブルのリレーションオブジェクトを出力してます。

 

 

gem 'activemodel-serializers-xml'
$ bundle install

ブログ主

Rails5の場合は上のgemをインストールする必要があるよ

 

以上になります。

他にも細かいものはあると思いますが、基本的なのはこれぐらいなはず…

参考になれば幸いです!では⸝⸝- ̫ -⸝⸝

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA