form_for und scopes, rails 3

7

Ich habe ein Problem aufgrund von Bereichen und der Form_for Helfer in Schienen 3. Die routes - Datei sieht folgendermaßen aus:

%Vor%

Das Formular sieht ungefähr so ​​aus:

%Vor%

Das tab - Attribut wird in params [: tab] als String gespeichert Mein Problem ist, dass dies falsche URLs in der Form erzeugt. Wie könnte ich das zur Arbeit bringen? Die generierte URL article_path (params [: tab], @article) funktioniert einwandfrei

    
iverds 18.09.2010, 14:03
quelle

6 Antworten

10

Die Antwort, die ich mir ausgedacht habe, war ziemlich hässlich, funktioniert aber sowohl mit update als auch mit create:

%Vor%

Aktualisierung: Eine bessere Lösung wäre das Überschreiben der default_url_options-Methode in etwa so:

%Vor%

Dann das & lt;% = form_for @article do | f | % & gt; könnte verwendet werden, und alle URLs werden korrekt generiert

    
iverds 07.11.2010, 14:40
quelle
9

Versuchen Sie:

%Vor%     
Yannis 19.09.2010 07:16
quelle
1

Sie könnten den Pfad explizit angeben:

%Vor%     
Matt Haley 18.09.2010 23:02
quelle
0

Ich habe festgestellt, dass dies ein wirklich irritierendes Problem ist, und habe das jetzt mit dem folgenden Affen-Patch überwunden. Generic wie folgt, es ist ein wenig Gebot aus, da Sie einfach die gesamte Tasche von Parametern zu polymorphic_url übergeben, die Form_for unter der Haube verwendet, um die Route zu erraten. Ein kürzerer Ansatz wäre es, nur den Wert des Bereichs zusammenzufassen.

Meine Lösung:

Ссылка

%Vor%     
jcalvert 16.02.2012 22:52
quelle
0

In einer sehr ähnlichen Situation habe ich den Umfang in Routen wie folgt definiert:

%Vor%

Jetzt habe ich Helfer wie election_questions_path(@election)

In den Formen, die ich verwenden kann:

%Vor%

In obigen Beispielen ist @election eine Instanz des Wahlmodells.

Nach der Integration von Friendly_id in diese Lösung habe ich ein paar hübsche URLs bekommen. Zum Beispiel "http://mydomain.com/elections-2012/questions/my-question"

    
Mika 09.09.2012 19:02
quelle
0

Meine Lösung für ein ähnliches Problem mit form_for und Bereichen besteht darin, eine neue Methode in helpers/<model_name>/<model_name>_helper.rb zu definieren, zum Beispiel meine ist sessions_helper.rb, die

enthält %Vor%

Und aus meiner Sicht habe ich

gemacht %Vor%

Problematische Routen.rb Teil

%Vor%

... und um mit :tab param verwaltet zu werden, können Sie es zur Hilfsmethode hinzufügen.

    
Max 19.07.2016 14:12
quelle

Tags und Links