Hallo,

ich melde mich zurück mit einer Erfolgsmeldung und einer Frage zu meiner 
oben genannten Problematik. Allerdings habe ich es mir bei der 
Überprüfung mit AJAX etwas einfacher gemacht und überprüfe die vier 
Felder immer nachdem diese verlassen wurden, ob alle benötigten Felder 
ausgefüllt wurden. Also nicht direkt bei der Eingabe. Auch die Anzeige 
einer entsprechenden Meldung funktioniert und wird an der richtigen 
Stelle eingefügt.

Jetzt habe ich aber eine Frage zu der Realisierung dieser Funktionalität 
(Prüfung auf Duplikate und Ausgabe einer Meldung mit den gefundenen 
Duplikaten unter einem Feld) ohne JavaScript (Fallback-Lösung). Ich habe 
es mir wie folgt vorgestellt:
Beim Abschicken des Formulars wird überprüft, ob die Validierung bereits 
von der JS-Lösung durchgeführt wurde (mittels eines hidden Feldes). Wenn 
nicht, soll die Action für die Validierung aufgerufen werden. Der für 
mich etwas knifflige Teil kommt jetzt: Wenn ein Duplikat gefunden wurde, 
soll der Nutzer wieder das Formular der "new"-Action angezeigt bekommen. 
Zusätzlich soll ein Partial (welches die Meldung enthält) an einer 
bestimmten Stelle des Quellcodes eingeblendet werden.

Im Moment rufe ich die Action für die Validierung innerhalb der 
"create"-Action auf:

  def create
    @test = Test.new(params[:test])

    # Check duplicate
    if @test[:checkDuplicate].blank?
      check_duplicate(@hotspot)

    end

    respond_to do |format|
      if @test.save
        flash[:notice] = 'Der Datensatz wurde erfolgreich gespeichert.'
        format.html { redirect_to(@test) }
        format.xml  { render :xml => @test, :status => :created, 
:location => @test }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @test.errors, :status => 
:unprocessable_entity }
      end
    end
  end

Jetzt komme ich aber leider nicht weiter dass die "news"-Action mit dem 
Partial angezeigt wird. Denn innerhalb der "create"-Action darf ich ja 
nur einmal den render Befehl verwenden. Und wenn die Überprüfung bereits 
stattgefunden hat, soll ja weiterhin der restliche Code (Eintragung in 
der Datenbank und je nach Ergebnis die show Seite angezeigt werden oder 
das Formular mit den Fehlern) ausgeführt werden. Wisst ihr was ich 
meine?


Viele Grüße,
Christian
-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an