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.