29

パーシャルを呼び出すための私のビューのコードは次のとおりです。

<%= render(:partial => "tabs", :locals => {:class_Name => "Science", :y => 36}) %>

_tabs.html.erb の内容は次のとおりです。

<div>
<h1> <%= class_Name %> </h1>
</div>

次の HTML 出力が期待されます。

<div>
<h1> Science </h1>
</div>

しかし、代わりにエラーが発生します:

undefined local variable or method `class_Name' for #<#<Class:0x007f873b156c28>:0x007f873b1f9540>

Aptana (使用している IDE) を閉じて再起動し、サーバーを複数回再起動しました

お時間をいただきありがとうございます。

4

6 に答える 6

68

次のように、部分パスの前に「partial:」を含めなかった場合に気付きました。

<%= render 'my_partial', :locals => {:class_Name => "Science", :y => 36} %>

他の人が指摘したように、目的の値にアクセスするには、パーシャルでハッシュ + シンボルを使用する必要がありました。

<div>
<h1> <%= locals[:class_Name] %> has a y value of <%= locals[:y] %></h1>
</div>

ただし、部分パスの前に「部分:」を含める:

<% render partial: 'my_partial', :locals => {:class_Name => 'Science', :y => 36 } %>

...ハッシュ値を直接呼び出すだけで済みました。

<div>
<h1><%= class_Name %> has a y value of <%= y %></h1>
</div>

心に留めておくべきことは、ローカルハッシュをパーシャルに送信しようとしたときに、この問題がしばらくの間つまずいたことです。

于 2014-02-08T21:08:51.517 に答える
0

それは私とうまくいっています..あなたはどこにいます_tabs.html.erbか?

于 2013-04-26T05:51:59.310 に答える