Ruby on Rails使用来自AJAX调用的新数据渲染部分

时间:2016-12-11 00:43:03

标签: javascript jquery ruby-on-rails ajax

因此我陷入困境并得到以下错误:

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对象更新这个愚蠢的下拉列表。

帮助:)

0 个答案:

没有答案