本日の学び 2021/05/02(render)

renderの考え方

使えるインスタンス変数はcontroller.rbで定義したアクションしか

ビューの方で定義できない。

(showアクションであればshow.htmlでしか使えない。)

例えばビューで@usersというインスタンス変数を使いたくても

controller.rbで@usersと定義していなければエラーが出てしまう。

これはアクションとビューの関係性が1対1のため。

 

またrenderでパスを指定する際、

同じ階層であれば記述が少し楽になる。

例えばprotptypesの中の_formを引っ張ってきたかったら

<%= render partial: "prototypes/form", collection: @users %>

と記述ではなく

<%= render partial: "form", collection: @users %>

これで引っ張ってこれる。

ただ階層が違う場合、例えばusersの中のformを引っ張ってきたかったら

<%= render partial: "users/form", collection: @users %>

と記述しなければいけない。