インドカレーファンクラブ

パソコン、カメラ

【Rails】RailsのViewでの変数の表示/設定/伝播パターンの苦しみ

いろんなパターンがあるけど、それぞれやり方が異なっていて難しい(迷惑)

<%= @hoge %>

Controllerにて@hoge = 'hoge'で設定しておく
あるいは View内で<% @hoge = hoge %>で設定

<%= hoge %>

View内で<% hoge = 'hoge' %>で設定しておく
※@hogeインスタンス変数(this, selfみたいな)、hogeはローカル変数

<%= hoge %>をPartialの中に記述した場合、Perialの呼び出し元で変数を渡す

<%= render partial: 'shared/sample', locals: { hoge: 'hoge' } %>

<%= yield(:hoge) %>

<%= yield(:hoge) %>はLayoutの中に記述

Layoutの呼び出し元で変数を渡す

<% provide(:hoge, 'ほげ') %>

<%= :hoge %>

シンボルで指定すると hoge がそのまま出力される (変数ではない)