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
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
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%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"
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
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.
Tags und Links ruby-on-rails-3 scope form-for