2009-07-13 14 views
1

In Ordnung. Ich habe ein Formular erstellt, wo Menschen in der Lage sind, Unternehmen zu erstellen, die dann zur Datenbank hinzugefügt werden. Alles hat gut funktioniert. Rails warf seine Fehler, wenn die Dinge nicht korrekt ausgefüllt wurden, und wenn sie es waren, würden Sie auf eine andere Seite geleitet, die Ihnen das Geschäft zeigt, das Sie gerade erstellt haben. Jetzt muss ich in der Lage sein, auf create zu klicken, und ajax implementiert das Geschäft und fügt es der folgenden Tabelle hinzu. Die Dinge arbeiten irgendwie. 1 Das Geschäft wird aktualisiert, aber nicht dynamisch zur Tabelle hinzugefügt. 2. Das größere Problem ist, dass sie die erforderlichen Felder nicht ausfüllen, klicken Sie auf create tut nichts. Es wirft keinen der Fehler. Ich benutze jquery, um den Ajax durch .js.erb-Dateien aufzurufen. Hier ist meine .js.erb-Datei.RoR, Jquery, Ajax Form Fehler

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

und mein Geschäft Controller

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 

Der Flash-Mitteilung = haben Notwendige Felder ausgefüllt nicht angezeigt nicht, wenn Sie die Seite aktualisieren. Keiner der Standard-XML-Fehler wird angezeigt. Wenn sie also nicht alle korrekten Formulare ausfüllen, scheint die Schaltfläche nicht zu reagieren. Wie benutze ich Ajax, um die Fehler zu nennen, die ruby ​​wirft und sie in die Flash-Nachricht einfügt?

Antwort

1

Sie können das gesamte Formular mithilfe der Formularvorlage einschließlich des Felds für Fehlermeldungen aktualisieren. So erhalten Sie auch fehlende Hervorhebungen und so weiter.

+0

Nun ja. Der springende Punkt ist, dass ich Ajax benutze, um es dynamisch in die Tabelle darunter zu schicken und dass es keine Seitenaktualisierung gibt. – Mike

+0

Ich meinte erfrischend mit Ajax. Sie legen das Formular in einen Container und aktualisieren diesen Container – marcgg