Учитывая следующее определение ресурса:
map.resources :posts, :except => [:show]
map.post '/:year/:month/:slug, :controller => :posts, :action => :show
Я могу заставить url_for
работать на меня, используя этот синтаксис:
<%= link_to @post.title, post_url(:year => '2010', :month => '02', :slug => 'test') %>
Но есть ли способ заставить это работать?
<%= link_to @post.title, @post %>
В настоящее время выдает эту ошибку:
No route matches {:year=>#<Post id: 1, title: "test", (...)>, :controller=>"posts", :action=>"show"}
По-видимому, он передает объект @post первому параметру маршрута (похоже на ошибку Rails ...). Но могу ли я сделать эту работу для меня? Добавлю, что возиться с default_url_options
- это тупик.
Решение, работающее только в Rails 3.x, в порядке, но я бы предпочел не использовать никаких плагинов.