2012-03-07 16 views
0

なぜこれが起こっているのかわかりませんが、JQueryを使用してフォームをサブミットした後はリセットされません。Railsのリモートフォームがリセットされない

_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でOK 200を完了

でハングアップ(再生回数:88.0ms | ActiveRecordの:2.5msで)

とログは、任意のは、私のCSSに到達示すものではありません。またはJSファイル。サイドノートでは

、私は(最初のPOSTの後、ページを更新せずに)再度、送信ボタンをクリックした場合、私はこのメッセージが表示されます。

は/ PUT「/産業/ 1 /問題を開始2012-03-06 午前18時49分51秒-0500

AbstractController :: ActionNotFoundで127.0.0.1のための71" (アクション '更新' は はProblemsController見つかりませんでした):

がレンダリング /ユーザー/ hansy/.rvm/gems/ruby​​-1.9.2-p29 0 /宝石/ actionpack-3.1.1/libに/ action_dispatch /ミドルウェア/テンプレート/救助/救助/レイアウト内unknown_action.erb (0.6ms

だから、私のフォームは、POSTからのメソッド変換されている理由がわかりません置く。

提案がありますか?

+0

#problem_form_areaとは何ですか? $("#problem_form_area").html("<%= escape_javascript(render :partial=> 'problems/problem_form') %>");に@問題を送る必要はありませんか? – Rahul

答えて

0

最初のサブミットは新しい問題レコードを作成します(これはPOST要求によって行われます)。

同じ@問題がビューに返されています。これでフォームはそのレコードを更新します(これはPUTリクエストによって行われます)

+0

ああ、当然のことだよ!どのように私はこれを避けるのですか?フォームは他のモデルの(産業)ショーページにあります(問題は産業内に入れ子になっています)。どうすれば '@ problem'を最近の記録から引き継ぐのではなく、' Problem.new(:industry => @industry) 'に戻すことができますか? –

+0

私はたぶんページにリダイレクトする必要がありますが、私の検証が適切に機能していないように思われます:(。 –

+0

あなたが必要な理由を説明できるならば:remote => true、何かを提案することができます。業界:has_many:問題があり、業界のページを見ているので、nested_attributes_for:問題があるform_for:industryがあり、IndustryController#updateが@ industry.update_attributesにその業界の新しい問題を自動的に作成する方が良いでしょう。 – Rahul

関連する問題