我正在尝试远程更新记录(通过ajax),并获得包含序列化记录的响应,但我不断获得xhr.responseText = {}。我想收到更新记录的序列化版本。
这是我的观点表格......
=semantic_form_for theme, :html => {'data-type' => 'json', :id => :theme_display_type_form, :remote => true} do |form|
-form.inputs do
=form.input :display_type
处理...
的控制器respond_to :html, :json
... other actions...
def update
flash[:success] = "Theme was successfully updated" if theme.update_attributes params[:theme]
respond_with(theme)
end
然后由rails.js ajax:成功事件
捕获响应$('#theme_display_type_form').bind('ajax:success', function(evt, data, status, xhr){
var responseObject = $.parseJSON(xhr.responseText);
alert(xhr.responseText); // = {}
alert(responseObject); // = null
});
我一定错过了什么。谁能告诉我我做错了什么?
修改
看起来我可能遇到“ respond_with ”的问题,因为在我的控制器中使用旧的respond_to方法正常工作...
def update
flash[:success] = "Theme was successfully updated" if theme.update_attributes params[:theme]
respond_to do |format|
format.json { render :json => theme }
end
end
任何人都有任何想法为什么response_with无法正常工作?
ANSWER
上的灯塔发布UPDATE没有返回任何对象是正常的,因为你已拥有该对象..
答案 0 :(得分:0)
我确实遇到了respond_with的问题,但是respond_to正常工作。
我在POST(创建)中看到它。似乎有时候response_with有效......