Routes with more than 1 param between slashes...

Hello. I am a beginner. I wanna make a route like this:

/document-:language-:month-:year.pdf

With 3 params, so I can retrieve a PDF in a URL like:

/document-english-june-2008.pdf

I have 2 problems...

1. It seems I can't put more than 1 param between the slashes The route /document/:language/:month/:year.pdf works fine. Because I have each params isolated...

2. It seems that the "-" cannot be used in the route. Is it true? Is there a workaround?

Thanks

I think so.

You can come close

  url /document/english-june-2008.pdf   route /document/:permalink

then in the controller parse the single permalink parameter however you wish.

I used the name permalink since this is a general term for a human readable 'id'.

if the only thing you need is a nicer url you can override the to_params method in the model. something like:

def to_params "#{id}-#{language}-#{year}-#{month}" end

I tried this. It works but only with underscores, but it doesn't work with "-".

it should, i used something like that (i mean with '-') did you keep the numeric id at the beginning of the to_params? you can search for Document.find(params[:id]) at usual because params [:id] is passed through to_i "43-en-2008-04.pdf".to_i == 43

You can try friendly_id

http://github.com/norman/friendly_id