I have the following partial.  It can be called from three different times in a view as follows:
 <%= render :partial => "contact_event",
     :collection => @contacts,
        :locals => {:event => email} %>
Second time:
 <%= render :partial => "contact_event",
     :collection => @contacts,
        :locals => {:event => call} %>
Third time:
 <%= render :partial => "contact_event",
     :collection => @contacts,
        :locals => {:event => letter} %>
In each instance, call, email, letter refer to a specific instance of a Model Call, Email, or Letter.
Here is what I tried to do and conceptually what I'd like to do: assign the route based on the class name that has been passed to the :event from the :partial.  
What I did was create what the actual url should be.  The 'text' of it is correct, but doesn't seem to recognize it as a named route.
 <% url = "skip_contact_#{event.class.name.tableize.singularize}_url" %
 <%= link_to_remote "Skip #{url} Remote",
    :url = skip_contact_email_url(contact_event, event),
    :update = "update-area-#{contact_event.id}-#{event.id}" %
 ' 
My challenge:  skip_contact_email_url only works when the event refers to an email.
How can I dynamically define skip_contact_email_url to be skip_contact_letter_url if the local variable is letter?
Even better, how can I have a single named route that would do the appropriate action?