I believe this is by design. When you say link_to(text, record), a polymorphic url is constructed depending on the model. But when you say edit_person_path, you are explicitly stating that you are dealing with Person records and that no polymorphism should take place.
I understand that when using STI you have a need for a polymorphic helper, but I don't think changing the behavior of named routes (explicit or automatically generated) is a solution - it would just be the source of more confusion for others. Your cup of tea would be the edit_polymorphic_path helper, as in this example I just put up: http://pastie.org/141162 - Mislav On Jan 20, 2008 1:32 PM, adish <[EMAIL PROTECTED]> wrote: > > Hi, > > With a simple STI Employee < Person, I can write in the Person > view.rhtml.erb : > > ... > link_to 'Show', person > ... > > and the correct controller will be call depending on the actual > (concrete) type of the record. > I think this is because link_to() uses polymorphic_url() internally. > > However, the restful helpers, such as edit_person_path() fail to > choose the correct controller and always route to the Person > controller. This seems inconsistent and confusing. > > How can I reroute edit_person_path() to take the polymorphic type into > account, and route to the correct controller? > > Is this by design or a bug? > > I hope I made myself clear. > Thanks, > Adi > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
