url_for de un recurso RESTful personalizado (clave compuesta; no solo id)

Dada la siguiente definición de recurso:

map.resources :posts, :except => [:show]
map.post '/:year/:month/:slug, :controller => :posts, :action => :show

yo puedo hacerurl_for trabaja para mí, usando esta sintaxis:

<%= link_to @post.title, post_url(:year => '2010', :month => '02', :slug => 'test') %>

Pero, ¿hay alguna manera de hacer que esto funcione?

<%= link_to @post.title, @post %>

Actualmente arroja este error:

No route matches {:year=>#<Post id: 1, title: "test", (...)>, :controller=>"posts", :action=>"show"}

Aparentemente, pasa el objeto @post al primer parámetro de ruta (parece un error de Rails ...). ¿Pero puedo hacer que esto funcione para mí? Agregaré eso jugando condefault_url_options Es un callejón sin salida.

La solución que funciona solo en Rails 3.x está bien, pero preferiría no usar ningún complemento.

Respuestas a la pregunta(4)

Su respuesta a la pregunta