不知道为什么会这样,但在通过JS(使用JQuery)提交表单后,它没有重置。
_problem_form.erb
<%= form_for [@industry, @problem], "id" => "problem_form", :remote => true do |f| %>
//fields
<% end %>
create.js.erb
<% if @problem.errors.any? %>
$("#errors").html("<%= escape_javascript(render :partial => 'layouts/error_messages', :locals => {:object => @problem })%>");
<% else %>
$("#problem_form_area").html("<%= escape_javascript(render :partial=> 'problems/problem_form') %>");
$(".problem_area").html("<%= escape_javascript(render @problems) %>");
$("#problem_form")[0].reset();
<% end %>
发送POST请求,我可以看到所有内容都正常更新。表单不会重置。
真正奇怪的是,通常在POST成功后,所有资产都会被提取。但是,这一次,服务器只是挂起
在132ms完成200 OK(浏览次数:88.0ms | ActiveRecord:2.5ms)
并且日志不指示我的CSS或JS文件的任何GET。
在旁注中,如果我再次点击提交按钮(在第一次POST之后并且没有刷新页面),我会收到以下消息:
在2012-03-06开始为127.0.0.1开始PUT“/ industries / 1 / problems / 71” 18:49:51 -0500
AbstractController :: ActionNotFound(动作“更新”不可能 找到ProblemsController):
渲染 /Users/hansy/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/unknown_action.erb 在救援/布局内(0.6ms
所以,不知道为什么我的表单将方法从POST转换为PUT。
有什么建议吗?
答案 0 :(得分:0)
第一个提交创建一个新的问题记录(由POST请求完成)。
同样的@problem被发送回视图。所以现在表单将更新该记录(由PUT请求完成)