Rails中的远程表单未重置

时间:2012-03-07 00:28:24

标签: jquery forms ruby-on-rails-3.1

不知道为什么会这样,但在通过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。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

第一个提交创建一个新的问题记录(由POST请求完成)。

同样的@problem被发送回视图。所以现在表单将更新该记录(由PUT请求完成)