Jquery Rails表单标记远程json
我的表格是这样设置的Jquery Rails表单标记远程json,jquery,ruby-on-rails,ruby-on-rails-3,Jquery,Ruby On Rails,Ruby On Rails 3,我的表格是这样设置的 = form_tag stocks_path, method: 'get', remote: true, class: "form-horizontal" do %legend Define Your Universe .control-group = label_tag :min_cap, "Min Cap", class: "control-label" .controls = text_fie
= form_tag stocks_path, method: 'get', remote: true, class: "form-horizontal" do
%legend Define Your Universe
.control-group
= label_tag :min_cap, "Min Cap", class: "control-label"
.controls
= text_field_tag :min_cap, params[:min_cap], size: 5, maxlength: 6, class: "input-small"
.control-group
= label_tag :max_cap, "Max Cap", class: "control-label"
.controls
= text_field_tag :max_cap, params[:max_cap], size: 5, maxlength: 6, class: "input-small"
.control-group
= label_tag :size, "Size", class: "control-label"
.controls
= text_field_tag :size, params[:size], size: 5, maxlength: 2, class: "input-small"
.form-actions
= submit_tag "Submit", class: "btn btn-primary"
然后我的控制器中有:
respond_to do |format|
format.html
format.js { render :json => {:stocks=>@stocks, :stats => @stats}
# By default, json method does not know about extra none activerecord attributes!
end
@stats是一个数字数组。
最后,在我的javascript中
$("form").bind 'ajax:success', (xhr, data, status) ->
stocks = $.parseJSON(data.stocks)
然后这里的问题是data.stocks不会将stocks对象作为json获取。在我的控制台中,我在stocks=$.parseJSON(data.stocks)
行中放置了一个断点。然而,回调函数从未被调用,所以我不知道到底发生了什么。但是我从网络选项卡(在chrome中)看到表单确实被提交并返回了所需的javascript对象。
我想知道为什么success的回调函数没有真正被调用
谢谢你的帮助。改用
format.json{etc..}
;检查响应头中的差异。改用format.json{etc..}
;检查响应标题中的差异。完成所有工作后,确定。我想出了解决办法。这很奇怪,我仍然找不到一个很好的解释。我将渲染行更改为format.js{render:json=>{:stocks=>@stocks,:stats=>@stats},:content\u type=>'application/json'}
。我尝试了format.json
,但响应头只是不断返回text/html而不是javscript。但是format.js
与附加选项:content\u type=>'application/json'
一起工作。任何解释都将不胜感激。谢谢好的,经过所有的努力。我想出了解决办法。这很奇怪,我仍然找不到一个很好的解释。我将渲染行更改为format.js{render:json=>{:stocks=>@stocks,:stats=>@stats},:content\u type=>'application/json'}
。我尝试了format.json
,但响应头只是不断返回text/html而不是javscript。但是format.js
与附加选项:content\u type=>'application/json'
一起工作。任何解释都将不胜感激。谢谢嗨,谢谢你的回复。我照你说的做了。标题显示内容类型:text/html;charset=utf-8,这很奇怪。嗨,谢谢你的回复。我照你说的做了。标题显示内容类型:text/html;charset=utf-8,这很奇怪。