くるみ
- renderメソッドでできることを大まかに思い出したい
という方に向けてRailsの「renderメソッドで出来ること」をまとめました。
初学者の備忘録ゆえ至らない点もあると思いますが参考になれば幸いです⸝⸝- ̫ -⸝⸝
Railsの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タグを出力することができます。
くるみ
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
ブログ主
renderメソッドのオプション一覧
オプション | 概要 |
action | 違うアクションのテンプレートを呼ぶ |
template | 違うフォルダ(コントローラー)にあるテンプレートを呼ぶ |
file | アプリの外部のテンプレートを呼ぶ |
plain | 文字列をそのまま出力する |
html | HTMLタグを出力する |
inline | erbでの実行結果を出力する |
json | JSON形式で出力する |
xml | XML形式で出力する |
まとめ
他にも細かいものはあると思いますが、基本的なのはこれぐらいなはず…
参考になれば幸いです!では⸝⸝- ̫ -⸝⸝