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
-~----------~----~----~----~------~----~------~--~---

Reply via email to