remote form_tag in rails3 ohne eine benannte Route

7

Was ist die richtige Beschwörung, um dies tatsächlich asynchron zu machen?

%Vor%

method = post und remote = true werden nur am Ende der URL gequetscht, anstatt es tatsächlich zu einem Ajax-Post zu machen.

    
Dennis Collective 17.08.2010, 22:40
quelle

3 Antworten

15

Der einzige Weg, den ich gefunden habe, ist das Umbrechen der URL-Parameter in die Methode url_for.

%Vor%

Wenn Sie jedoch den Parameter method übergeben müssen, müssen Sie möglicherweise diesen und die Remote in Klammern umbrechen.

    
Sean 26.08.2010, 20:37
quelle
9

Hier ist, was Sie brauchen:

%Vor%

Es ist ein schlechtes Design, aber die Methoden Rails form_tag erfordern ZWEI Hashes - den Hash-Wert url_for options und den Hash-Wert regulärer Optionen. Dies hat viele Rails-Programmierer sehr verwirrt. Wenn Sie die abgrenzenden Hash-Grenzen nicht hinzufügen, werden alle Optionen an url_for () übergeben, wodurch :remote => true zerstört wird.

Dies fügt data-remote="true" zu Ihrem Formular hinzu (um mit unauffälligem Javascript verwendet zu werden, wie andere bereits erwähnt haben). Von dort müssen Sie den entsprechenden AJAX für die Bindung erstellen, um die Anfrage auszuführen.

Obwohl Sie eigentlich eine benannte Route wie magic_search_path anstelle der Controller / Aktionsparameter verwenden sollten.

    
adamlamar 21.04.2011 01:34
quelle
0

Ich glaube, Sie müssen stattdessen form_remote_tag verwenden:

%Vor%

Die Standardmethode http ist post.

Wenn Sie zusätzliche Parameter für ein form_tag übergeben möchten, müssen Sie diese in einem separaten Hash aus den URL-Parametern wie folgt zusammenfassen:

%Vor%     
Shadwell 17.08.2010 22:47
quelle