レンダーパーシャル :object vs :locals
2023-10-24 06:40:37
質問
<%= render :partial => 'partial/path', :locals => {:xyz => 'abc'} %>
対
<%= render :partial => 'partial/path', :object => @some_object %>
最初の方は、ローカル変数に
xyz
という名前のローカル変数をパーシャルで使用できるようにし、2番目のものは
object
という名前のローカル変数をパーシャルで使用できるようにするものです。では、その違いは何でしょうか?(他に
locals
では複数の変数が使えます)
どのように解決するのですか?
2番目のケースで :object を使用すると、デフォルトでパーシャルと同じ名前の変数が定義されます。 もし私のパーシャルテンプレートが _user.html.erb という名前であれば、テンプレート内に "user" という名前のローカル変数が定義されることになります。
as => "other_name"で別の変数名を指定することができます。
これについては、こちらのドキュメントを参照してください。 http://api.rubyonrails.org/classes/ActionView/PartialRenderer.html はこちらです。 http://apidock.com/rails/ActionView/PartialRenderer
...そして古いRails(バージョン <= v3.09)用。 http://apidock.com/rails/ActionView/Partials
関連
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] "render :nothing => true" は空のプレーンテキストファイルを返すのですか?
-
[解決済み] railsでcheck_boxをcheckedにする方法は?
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] 未初期化の定数 "コントローラ名"
-
[解決済み】railsの部分テンプレートでオプションのローカル変数:(defined? foo)の混乱から抜け出すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] RoRにおけるSpringサーバーの機能とは?
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".