こんにちは、おーしまです。
今回は、renderメソッドについてです。
部分テンプレートを呼び出す際などに使われていますが、
今回は私が使った場合について紹介します。
ビューファイルで使用する時と、
コントローラーで使用する時の2種類です。
1、ビューファイルで使用する
<%= render partial:"~~~~~" , locals { ~~~~ : @~~~~ } %>
このように記述します。
partial:"~~~~~" と記述することで、_~~~~~.html.erb ファイルを呼び出すことができます。
逆にいうと、部分テンプレートのファイル名は、_ から始まらなければいけません。
(例 _form.html.erb )
呼び出したい部分テンプレートファイルのディレクトリが
呼び出したいファイルと違う場合は、
<%= render partial: " ディレクトリ名 / ~~~~~ " , , locals { ~~~~ : @~~~~ } %>
という感じで、ディレクトリ名も指定しましょう。
locals { ~~~~ : @~~~~ } 部分は、部分テンプレートファイル内で、
@~~~~ を ~~~~ として扱うよ。という意味です。
また、
<%= render partial:"~~~~~" , collection: @~~~~~ %>
と記述することで、@~~~~~ の数だけ繰り返し表示させることができます。
例えば、@posts なら、テーブルに保存されている post の数だけ繰り返し、
部分テンプレートの中は、post.name などでpostのnameを表示させることができます。
2、コントローラーで使用する
def cerate render :new end
このように記述すると、newアクションへ飛ばしてくれます。
(飛ばすというか、持ってくる?)
def cerate render "コントローラー名 / new" end
コントローラーが違う場合は、上のようにコンローラー名も指定します。
def index @~~~~~ = ~~~~~~~~~~~~~~~ render json: @~~~~~ end
上のよう記述すると、indexアクションが呼ばれると、
@~~~~~ のデータをビューファイルではなく、 json で返します。
以上
今回はここまでです。
それでは、また〜