url_for einer benutzerdefinierten RESTful-Ressource (zusammengesetzter Schlüssel; nicht nur id)
Ausgehend von der folgenden Ressourcendefinition:
map.resources :posts, :except => [:show]
map.post '/:year/:month/:slug, :controller => :posts, :action => :show
Ich kann machenurl_for
arbeite für mich mit dieser Syntax:
<%= link_to @post.title, post_url(:year => '2010', :month => '02', :slug => 'test') %>
Aber gibt es eine Möglichkeit, diese Arbeit zu machen?
<%= link_to @post.title, @post %>
Derzeit wird dieser Fehler ausgelöst:
No route matches {:year=>#<Post id: 1, title: "test", (...)>, :controller=>"posts", :action=>"show"}
Anscheinend wird das @post-Objekt an den ersten route-Parameter übergeben (scheint ein Rails-Bug zu sein ...). Aber kann ich das für mich erledigen? Ich werde diese Verwirrung mit hinzufügendefault_url_options
ist eine Sackgasse.
Die Lösung, die nur in Rails 3.x funktioniert, ist in Ordnung, aber ich würde es vorziehen, keine Plugins zu verwenden.