Hallo,

Ruby lässt keine Bindestriche im Methodennamen zu, also kann es keine einfache Lösung geben
Abgesehen davon, dass ich das für keine gute Idee halte die Methodennamen mit einem Bindestrich zu versehen, fallen mir spontan folgende lustige Dinge ein:

- mit einer geschickten rewrite-rule oder einer Rack Middleware könnten die entsprechenden URLs umgeschrieben werden. Aus /artikel-support/artikel-einsenden wird dann rails intern /artikel-support/artikel_einsenden
  -> hier finden sich ein paar schöne Beispiele für Rack Middleware: http://coderack.org
  Jetzt müssten aber noch die URL Helper angepasst werden oder sämtliche URLs mit einem extra helper erzeugt werden -> nicht schön

- den Artikel-support als Resource anlegen und die "speziellen Methoden" als :IDs tarnen und in einem before-filter für die Sonderfälle ausfiltern bzw. umlenken + kleinere Anpassungen für die URL Helper
  -> auch ziemlich aufwendig


Ich würde folgende etwas weitergehende Lösung verwenden:
Einen extra page controller der als Parameter einen String statt einer numerischen :id verarbeitet (z.B. leicht mit der von Stefan verlinkten Lösung zu realisieren).
Darüber hinaus könnte der page controller noch eine Hierarchie abbilden etc.

/page/:page_id
=>
/seite/artikel-support
/seite/artikel-einsenden # child von /seite/artikel-support

Jetzt könnte darunter die Artikel resource genested werden.
/seite/artikel-einsenden/  # Übersichtsseite
/seite/artikel-einsenden/artikel/  # ruft index des Artikel controllers
/seite/artikel-einsenden/artikel/einsenden  # Ziel eines Posts, dafür muss kein optimierung der URL stattfinden

Das ist aber schon recht weit von der eigentlichen Frage weg und macht relativ viel Arbeit für den nur schwer messbaren Nutzen der "schönen URLs".


Grüße,

Reiner


Werner Laude schrieb:
Normalerweise ist die URL bei RoR ja so


Den Controller artikel_support kann ich in der routes als :as => ''artikel-support definieren und bin das Problem los

aber die actions akteptieren keine Bindestriche??!


gibt es da eine Lösung?

Gruß


Werner Laude

------------------------------------------
http://www.webagentur-laude.de
------------------------------------------


_______________________________________________ rubyonrails-ug mailing list rubyonrails-ug@headflash.com http://mailman.headflash.com/listinfo/rubyonrails-ug



_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an