[解決済み] Rails: パーシャルにローカルを渡す構文に戸惑う
質問
パーシャルのレンダリング(およびそれにローカルを渡すこと)に関して、Railsのquot;magic"を理解しています。
なぜこれが機能するのか。
<%= render "rabbits/form" %>
そしてこの作品。
<%= render "rabbits/form", :parent => @warren, :flash => flash %>
が、これは ではなく が働きます。
<%= render "rabbits/form", :locals => { :parent => @warren, :flash => flash } %>
しかし、これはそうです。
<%= render :partial =>"rabbits/form", :locals => { :parent => @warren, :flash => flash } %>
あと、S.O.で人に迷惑をかけないように、このニュアンスを調べるにはどうしたらいいでしょうか?
どのように解決するのですか?
簡単に言うと、レンダーメソッドは、最初に渡された引数を見ます。ハッシュを渡した場合(これには
:partial => 'foo', :locals => {blah blah blah}
を含む) を渡すと、すべての引数をハッシュとして渡し、それに応じてパースします。
最初の引数に文字列を渡した場合、最初の引数を部分名とみなし、残りをローカル名として渡します。しかし、その後の呼び出しで、実際に割り当てられるのは
:locals => your_locals_argument
を割り当てますが、これはこの場合
:locals => {locals hash}
ではなく
{locals hash}
で終わる。
:locals => {:locals => {locals hash}}
ではなく
:locals => {locals hash}
.
ですから、私のアドバイスは、いつもいつも同じ方法で明示的に値を渡すようにすれば、問題は起きないということです。このことを学ぶために、私は直接コードそのものを見に行きました (
actionpack/lib/base.rb
,
render()
というメソッドがありますが、Rails 2の場合です。Rails 3は違います)。いい練習になりますよ。
さらに、SOで人に迷惑をかけることを心配する必要はありません。そのためにこのサイトが存在するのですから。私はこれで何かを学びました。
関連
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み】gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] railsでcheck_boxをcheckedにする方法は?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] Ruby on Railsのためにnetbeansを構成する方法は?
-
[解決済み] Railsはsaveでモデル内の検証をスキップしますか?
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController