Ich möchte, dass meine Rails 2.3.2 App auf solche URLs antwortet und diese erzeugt:
%Vor%In meiner config / routes.rb habe ich:
%Vor%Ich kann dann auf Ressourcen wie:
zugreifen %Vor%Durch die Änderung meines Website-Modells kann ich bessere URLs wie folgt erzeugen:
%Vor%Für Domainnamen, die '.' enthalten Charaktere, Rails wird unglücklich. Ich glaube, das liegt daran, dass das "." Das Zeichen ist in ActionController :: Routing :: SEPARATORS definiert, in dem Sonderzeichen zum Aufteilen der URL aufgeführt sind. Dies ermöglicht Ihnen, Dinge wie /websites/1.xml zu tun.
SO, gibt es einen sauberen Weg, '.' Zeichen in RESTful URLs?
Ich habe versucht, ActionController :: Routing :: SEPARATORS neu zu definieren, um '.' nicht einzubeziehen, was eine völlig schlechte Möglichkeit ist, das Problem zu lösen. Dadurch werden generierte URLs durch Anhängen von ".: Format" an sie verfälscht.
Ich weiß auch, ich kann hinzufügen: Anforderungen = & gt; {: id = & gt; regexp} an meine config / routes.rb, um einen Domainnamen mit '.' (Ohne dies wird params [: id] auf den Teil des Domain-Namens vor dem ersten '.' gesetzt), aber dies hilft nicht bei der URL-Erstellung / Pfade RESTfully.
Vielen Dank :) Nick
Das Problem wurde gelöst, mit einem großen Dank an Ссылка (und siehe Ссылка für zusätzliche Referenz)
Ich musste hinzufügen: anforderungen = & gt; {: website_id = & gt; regexp} für jede verschachtelte Route, die auch einen Domänennamen mit Punkten enthalten würde.
Hier ist mein Arbeitsweg:
%Vor%Der Anruf nach
%Vor%passt einfach zu DRY, damit: Anforderungen nicht für alle verschachtelten Routen für Websites angegeben werden müssen. So könnte ich auch
haben %Vor% Dies ist ein interessantes Thema. Ich denke nicht, dass du die schlechte '.:format'
, die an das Ende angehängt wird, loswerden kannst, wenn du eine grundlegende map.resources
machst. Wenn Sie Punkte in den Namen möchten, stimmen Sie nicht mit den üblichen Rails-Stilen überein, und ich denke, eine benutzerdefinierte Route könnte in Ordnung sein, wenn Sie absolut NEED das '.' in der URL.
Vielleicht sollten Sie jedoch Ihre Definition von to_param
ändern. Was würden Sie über Folgendes denken?
Ich denke, wenn Sie damit Kunden-Websites verwalten, ist das eine ziemlich elegante Möglichkeit, nette (und SEO-freundliche) URLs wie
zu generieren %Vor%Tags und Links ruby-on-rails rest separator