1

変数をパーシャルに渡して、パーシャル内で呼び出せるようにしようとしています。これは、パーシャルをレンダリングする方法です

 = render :partial => "layouts/reveal_delete", :resource => @schedule

そして、これは私がパーシャル内で変数を呼び出す方法ですが、機能していないようです

#RevealDelete.reveal-modal
%a.close-reveal-modal ×
  %h3= "Delete #{@resource}"
  %p Are you sure you want to delete this?
  =link_to "Delete #{@resource}", @resource, :method => :delete, :class => "button close-reveal-modal"
  %a.button.alert.close-reveal-modal Cancel
4

1 に答える 1

3

次のように呼び出します。

= render :partial => "layouts/reveal_delete", :locals => { :resource => @schedule }

そして、パーシャル内で、次のようにresource(no @)を参照することで使用できます。

%h3= "Delete #{resource}"

ただし、通常は、scheduleインスタンス変数と一致するようにローカル変数に名前を付けるため、次のようになります。

= render :partial => "layouts/reveal_delete", :locals => { :schedule => @schedule }

scheduleそして、部分的に参照できます。

また、必要に応じて、オプション キー:partial:localsオプション キーを削除して、次の短い構文を使用することもできます。

= render "layouts/reveal_delete", :schedule => @schedule

ここで、Rails は、最初の引数として文字列を渡す場合、最初の引数は部分的な名前であり、残りはローカル変数の割り当てとして解釈されると想定しています。この構文について説明する回答は次のとおりです。

docsにも詳細があります。

于 2013-02-03T05:12:23.163 に答える