2009-07-13 10 views
1

申し訳ございません。私は人々がデータベースを作成するビジネスを作成することができる作成フォームを持っています。すべてうまくいった。物事が正しく記入されなかった場合、Railsはエラーを投げていました。あなたが作成したばかりのビジネスを示す別のページに誘導されます。これで、createをクリックしてajaxにビジネスを実装させ、それを下の表に追加する必要があります。物事はうまくいく。 1ビジネスは更新されますが、テーブルに動的に追加されることはありません。 2.大きな問題は、必要なフィールドに記入しないことです。作成をクリックすると何も実行されません。いずれのエラーもスローされません。 jqueryを使用して.js.erbファイルからajaxを呼び出しています。ここに私の.js.erbファイルがあります。RoR、Jquery、Ajaxフォームエラー

$("#new_business").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice)) %></div>'); 
$("#businesses").append("<%= escape_javascript(render(:partial => @businesses)) %>"); 
$("#new_business")[0].reset(); 

と私のビジネスコントローラ

def create 
    @business = Business.new(params[:business]) 

    respond_to do |format| 
     if @business.save 
     #blindly make them the owner of the business they created 
     if current_user 
      current_user.business_id = @business.id 
      current_user.save 
     end 
     flash.now[:notice] = 'Business was successfully created.' 
     format.html { redirect_to(business_url(@business)) } 
     format.js { render :layout => false } 
     format.xml { render :xml => @business, :status => :created, :location => @business } 
     else 
     flash.now[:notice] = 'Necessary fields have not been filled out' 
     format.html { render :action => "new" } 
     format.xml { render :xml => @business.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

フラッシュ予告=必要なフィールドを使用すると、ページを更新しない限り、表示されません。記入されていません。デフォルトのxmlエラーのいずれも表示されません。彼らはすべての正しいフォームを記入しない場合、ボタンが応答しないようです。どのようにしてajaxを使ってRubyが投げているエラーを呼び出してフラッシュ通知に入れますか?

答えて

1

エラーメッセージフィールドを含むフォームテンプレートを使用してフォーム全体を更新することができます。このように、フィールドの強調表示などが欠落しています。

+0

まあまあです。要点は、Ajaxを使用して動的にそれを下の表に送信し、ページをリフレッシュしないことです。 – Mike

+0

私はajaxを使ってリフレッシュすることを意味しました。フォームをコンテナに配置し、このコンテナを更新します。 – marcgg