これは、部分表示のためのform.html.erbのコードです。ローカルvar:sidはレコードのIDとして定義されており、ローカルビューとしてstandards.html.erbパーシャルビューに渡す必要があります。ここでレールでのローカルvarのパス/リトリーブ方法3.1.0パーシャルビュー?
<% @rfq.standards.each do |r| %>
<p><%= render :partial => 'standards', :locals => { :f => f, :sid => r.id } %></p>
<% end %>
は、基準部分図である。レンダリングされたとき
<%= f.association :standards, :collection => Standard.active_std.all(:order => 'name'), :label_method => :name, :value_method => :id,
:prompt => "Choose std", :label => "standard:", :include_blank => true, :selected => :sid %>
、基準部分ビューには、選択したSIDと標準のコレクションをレンダリングする必要があります。しかし、上記のコードは標準を一切選択していません。試したsid(文字列):selected => sid。これにより、sidが定義されていないというエラーが発生します。
私の質問は、ビュー内でローカルvarを渡して取得する正しい方法は何ですか?本当にありがとう。
'sid'はパーシャルビューのローカル変数であるため、' ...、:selected => sid%> 'という部分ビューで使うべきです。 ':sid'は単なるシンボリックな値なので動作できません。しかし、あなたの 'render:partial ...'の使い方は私にとっては大丈夫です。 – mliebelt
私は地元の人々について広範にオンラインで検索しました。ほとんどすべての人が地元の人を使って、部分的に名前でアクセスします。しかし、何とかsidは部分的に定義されておらず、アクセスできません。 varを部分的に渡す別の方法はありますか?本当にありがとう。 – user938363
理由は、完全に同じフォーマットの各場所で部分標準が呼び出されなかったからです。ある方法(ここには示していません)では、標準は:render:partial => standards、:locals => {:f => f}のように呼ばれました。追加後:sid => 0、ここでsidが正常に渡されます。 – user938363