2014-09-04 59 views
0

我想在用戶輸入有效日期時更新窗體中的一節。 CoffeeScript是 啓動對控制器的調用,並且控制器啓動'.js.erb'動作以將 呈現爲部分形式。我要的是提供用戶輸入的日期爲「自動完成」字段,所以只 具有一定的有效期將被退回,並提供值...Rails4:窗體更新通過Ajax不工作 - >模板錯誤

下面

見代碼:

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'爲 已知的更大形式.....

我在做什麼錯了?或者:是否有更好的方式來更新 用戶交互.....後的表單線索?

預先感謝任何幫助,您可以提供...

德克

+0

請發佈總視圖 – 2014-09-04 12:30:26

+0

你需要從視圖中看到什麼?查看近200行大....可以發佈摘錄嗎? – 2014-09-04 12:40:11

+0

f似乎是form_for對象,當你在ajax成功後呈現組合體時,你沒有那種形式的對象,這就是爲什麼你得到這個錯誤。 – Thorin 2014-09-04 13:25:34

回答

0

OK,找到我自己的一招 - 使用一個會話變量。我知道,它很髒,並且與AJAX無關,因爲它的設計, - 但它的工作原理... 唯一的問題是區分兩個或三個位置何時使用參數以及何時使用會話。但 仍然使用AJAX和Coffeescript來發起這種呼叫...