Rails4:通过Ajax进行的表单更新不起作用->模板错误
Rails4: Form-Update via Ajax not working -> Template error
当用户输入有效日期时,我正在尝试更新表单中的一个部分。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来启动这种调用。。。。
相关文章:
- 内联javascript与"<脚本>"字符串错误地关闭了脚本标记
- "未捕获类型错误/丢弃意外“;因为一句台词而出现?(HTML w/<脚本>)
- jquery 1.8.0语法错误,无法识别的表达式:>
- HTML上的Webpack JSX错误<来源>标签
- 3ds max>collada>threejs动画错误;缩放超出界限”;
- 未捕获的类型错误:对象#<节点列表>没有方法'addEventListener'
- 无法修改Controls集合,因为控件包含代码块(即<%.%>).无法更正此错误
- 未捕获的类型错误:对象#<对象>没有方法'绑定'-脊梁骨
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'偏移'
- 未捕获的语法错误:意外的标记<在<!DOCTYPE html>
- 中心未定义-<!DOCTYPE html>错误
- 未捕获的类型错误:对象#<HTML对象元素>没有方法'重新绘制工作流'
- npm->错误:找不到模块'可读流'
- 未捕获的类型错误:对象#<对象>没有方法'substr'带标签的标记
- <嵌入>或者<对象>标签视频播放错误处理程序-JavaScript
- 扩展程序读取错误的数据 + gt>不起作用
- 未捕获的类型错误:对象#<HTML文档>没有方法'alert'
- Angular js:->访问解析属性时,angular引发未知提供程序错误
- svg>并且<rect>谷歌折线图中的内联样式错误
- JQuery表分类器未捕获类型错误:对象#<HTML文档>没有方法'准备就绪'