Routes with more than 1 param between slashes...

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


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


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?


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

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