Rails4:通过Ajax进行的表单更新不起作用->模板错误

Rails4: Form-Update via Ajax not working -> Template error

本文关键字:gt 错误 不起作用 更新 Ajax 通过 表单 Rails4      更新时间:2023-09-26

当用户输入有效日期时,我正在尝试更新表单中的一个部分。CoffeeScript启动对控制器的调用,控制器启动用于渲染的".js.erb"操作一种偏形式。我想要的是将用户输入的日期提供给"自动完成"字段,这样只有具有特定有效日期的值才会返回并提供。。。

参见以下代码:

flights.s.coffee:

$ -> 
    $("#flight_f_date").focusout ->
        $.ajax
            url: "/flight/populateAircraftsSelection"
            data:
                f_date: $('#flight_f_date').val()
            dataType: "script"

我的控制器功能看起来像:

def populateAircraftsSelection
  puts "AircraftsSelection" + params[:f_date.to_s]
  @flight_date = params[:f_date].to_s
  respond_to do |format|
    format.js
  end 
end

populateAircraftsSelection.js.erb:

$("#flight_test").html("<%= escape_javascript render partial: 'test', :locals => { flight: @flight, flight_date: @flight_date  }  %>");

和_test.htnl.erb部分

<div id="#test">
    <%= f.label :aircraft_id, "Kennzeichen" %><br>
    <%= f.hidden_field :aircraft_id %>
    <%= f.autocomplete_field :helper_registration_field ,   
                             autocomplete_aircraft_registration_flights_path(:flight_date => 
                             @flight_date.to_s), 
                             :update_elements => { :id => '#flight_aircraft_id', :acfttype => 
                             '#flight_helper_aircraft_field' } %>
</div>

我得到以下错误:

ActionView::Template::Error (undefined local variable or method `f' for #<#     
<Class:0x007fee2cb62c28>:0x007fee298a0ec0>):
    1: <div id="#test">
    2:
    3:
    4:  <%= f.label :aircraft_id, "Kennzeichen" %><br>
    5:                      <%= f.hidden_field :aircraft_id %>
    6:
    7:                  <%= f.autocomplete_field :helper_registration_field , 
 autocomplete_aircraft_registration_flights_path(:flight_date => @flight_date.to_s),
app/views/flights/_test.html.erb:4:in    
`_app_views_flights__test_html_erb__1386346884294841760_70330389540980'
  app/views/flights/populateAircraftsSelection.js.erb:1:in 
 `_app_views_flights_populate_ircrafts_election_js_erb__2604210186479166916_70330440189180'
   app/controllers/flights_controller.rb:179:in `populateAircraftsSelection'

我想"f"一定是已知的,因为我正在把这个偏旁加成一个更大的形式,其中"f"是已知。。。。。

我做错了什么?或者:有没有更好的方法来更新表格中的线索用户交互。。。。。?

提前感谢您提供的任何帮助。。。

Dirk

OK,我自己发现了一个技巧——使用会话变量。我知道,它是肮脏的,与AJAX没有任何关系,因为它是设计的,但它工作。。。在两个或三个位置区分何时使用params和何时使用会话的唯一问题。但是仍然使用AJAX和Coffeescription来启动这种调用。。。。