簡體   English   中英

Rails4:通過Ajax進行表單更新不起作用->模板錯誤

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

當用戶輸入有效日期時,我正在嘗試更新表單中的部分。 CoffeeScript正在啟動對控制器的調用,並且控制器啟動“ .js.erb”操作以呈現部分表單。 我想要的是將用戶輸入的日期提供給“自動完成”字段,因此將僅返回並提供具有特定有效日期的值...

參見下面的代碼:

flight.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'.....

我做錯了什么? 或者:在用戶交互之后是否有更好的方法來更新表單內的提示?

預先感謝您提供的任何幫助...

短劍

好的,我自己找到了一個竅門-使用會話變量。 我知道,它很臟,並且與AJAX的設計無關,但是它可以工作...區分兩個或三個位置,何時使用參數和何時使用會話的唯一問題。 但是仍然使用AJAX和Coffeescript發起這種調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM