因此我陷入困境并得到以下错误:
ActionView::Template::Error (undefined local variable or method `f' for #<#<Class:0x007f98a9f36418>:0x007f989026e500>)
这是我的代码尝试做的事情。用户前往&#34;新&#34;页面,有一个表格,其中有一些下拉菜单。用户在下拉列表中选择一个项目。这会触发对服务器的ajax调用,以获取数据以填充下一个下拉列表,该下拉列表包含在部分中。这是表格的开头:
<%= simple_form_for @residency,:class=>"col s12" do |f| %>
<div id= "site_selection" class="row">
<% unless edit_view @residency %>
<h5> Basics </h5>
<h4>Step 1: Search for your intervew site</h4>
<select id="specialty-selected"><%= options_for_select(@specialty_list, "specialty") %></select>
<select id="city-selected"><%= options_for_select(@city_list, "city")%></select>
<%end%>
</div>
<!-- Searched Residency Dropdown goes here Start-->
<div id="residency-site-dropdown">
<%= render :partial=>"select_residency_site", locals:{:f=>f} %>
</div>
<!-- Searched Residency Dropdown goes here END-->
这是部分:
<%= f.collection_select(:residency_site_id, @valid_residencies, :id, :name_for_dropdown, {prompt: true, required: true}) %>
我的控制器通过以下方式处理:
@valid_residencies = ResidencySite.where(query)
respond_to do |format|
format.js {render "form_filter"}
_form_filter.js.erb包含以下内容:
$("div#residency-site-dropdown").html("<%= j escape_javascript(render partial: 'select_residency_site', locals:{@valid_residencies=>@valid_residencies, :f=>f } ) %>");
所有工作都是通过加载包含partial的表单,触发ajax调用,从db获取适当的数据。只是我的_form_filter.js.erb无效。我想要做的就是使用@valid_residencies对象更新这个愚蠢的下拉列表。
帮助:)