Map.resources i :member

Witam

Mam problem ze zdefiniowaniem ścieżek, w routes.rb mam:

map.resources :topics, :member => {:forward => :get}, :has_many => [ :messages ]

Sprawdzam sobie w konsoli, adres niby jest generowany poprawnie

r.generate :controller => :topics, :action=> :forward, :id => 1
=> “/topics/1/forward”

Jednak, w drugą stronę już nie działa, zamienia mi :id i :action miejscami…

r.recognize_path “/topics/1/forward”
=> {:controller=>“topics”, :action=>“1”, :id=>“forward”}

Probowalem zmienić na starszy sposób definiowania ścieżek, ale również, jest ten sam problem

map.resources :topics, :member => {:forward => :get} do |topics|
topics.resources :messages
end

Tymczasowo wywaliłem :member i dodałem
map.connect ‘topics/:id/forward’, :controller => :topics, :action => :forward

ale strasznie mi się nie podoba to rozwiązanie…

Spróbuj zapytać o

>> r.recognize_path "/topics/1/forward", :method => :get

Funkcja, do której odwołuje się recognize_path (recognize_optimized) jest deprecated od wersji 2.1, więc może dlatego nie działa jak powinno?

I na koniec (być może) pomocny wątek z Rails Core Google Group:
http://groups.google.com/group/rubyonrails-core/browse_thread/thread/af74ec333520fba0/9201ef24106e4710