[英]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.