Gorilla webdesign Go home!

  • Contact
  • Wat we doen
  • Hoe we werken
  • Onze projecten
  • Blog
Geschreven door Benny
Op 27/03/2007

Naar overzicht

↑
  • ←

    Vorig

    Gebruiksvriendelijke URL's met to_param
  • Volgend

    → Exit photoshop, enter fireworks

Gebroken links in rails 1.2

Mijn artikel over mooie URL’s in Rails was nog niet een week de deur uit, of ik werd al gewezen op 404 (page not found) errors door een collega. Al gauw kwam ik tot de vaststelling dat URL’s met escaped characters of punten in niet meer juist verwerkt werden.

De route

map.artikel 'artikel/:id', :controller => 'artikels', :action => 'show'

Ik gebruik ook to_param zoals in het artikel hierboven.

De oorzaak

Voor zo ver ik weet was tot rails 1.1.6 een forward slash ”/” de enige route delimiter. Simply put, wannneer een request naar rails gestuurd werd, werd een path als

/artikel/12-Gorilla+webdesign+is+soo+2.0+!

opgesplitst in 2 delen, om de controller en het artikel id te bekomen. Sinds rails 1.2 echter, zijn er meer karakters die een route delimiter voorstellen, namelijk: ’/’, ’;’, ’.’, ’,’ en ’?’. Bijgevolg zou de URI hierboven gesplitst worden in 3 delen, waardoor de route niet meer herkend wordt en er dus een 404 fout optreedt. Ook url’s met een ampersand waren gebroken, omdat die ampersand in url’s ge-escaped wordt naar '&'. Hetzelfde geld voor vraagtekens, afkappingstekens, etc..

De oplossing

Om te zorgen dat je route toch nog dots en andere characters ondersteunt, vul je die aan met een :requirements parameter;

map.artikel 'artikel/:id', :controller => 'artikels', :action => 'show', :requirements => {:id => /.*/ }

Hiermee zeg je dat de :id parameter moet voldoen aan de reguliere expressie ”/.*/”, wat er op neerkomt dat elke character toegelaten wordt.

Blog aandacht

Ik vind het vreemd dat hierover niet meer commotie is ontstaan. Met moeite heb ik een artikel gevonden op skwpspace.com dat hierover gaat. Waarschijnlijk zijn er momenteel wel meer rail’ers die hier ook mee kampen en in het duister tasten..

Reacties

Reageer als eerste!

Geef je mening… don't be shy

  • http://

Meet the primates

  • vind ons op Facebook
  • volg ons op Twitter
  • zie ons op Flickr
  • Jelle

    Jelle vertrekt vanuit duidelijke structuurdocumenten en ontwerpt uw website. Hij is gek op goed design en sterke typografie.

    Volg Jelle op Twitter
  • Jochen

    Jochen zet uw ontwerp om naar een strak staaltje modern webdesign. Zijn motto: build for the best, optimize for the rest.

    Volg Jochen op Twitter of zijn blog

Feed the primates

Wij hebben grote honger naar nieuwe projecten. Ook voor uw project leggen wij de lat heel hoog. Samenwerken? Stuur een berichtje of geef een belletje.

  • info@gorilla-webdesign.be
  • Gorilla webdesign bvba
    Zwijnaardsesteenweg 169
    9000 GentBekijk op Kaart

Een idee voor een nieuw project? We zijn benieuwd




Naar boven