У меня есть следующий частичный. Его можно вызывать из трех разных времен в следующем виде:
<%= render :partial => "contact_event",
:collection => @contacts,
:locals => {:event => email} %>
Второй раз:
<%= render :partial => "contact_event",
:collection => @contacts,
:locals => {:event => call} %>
В третий раз:
<%= render :partial => "contact_event",
:collection => @contacts,
:locals => {:event => letter} %>
В каждом случае вызов, электронная почта или письмо относятся к конкретному экземпляру модельного вызова, электронной почты или письма.
Вот что я попытался сделать, и концептуально, что я хотел бы сделать: назначить маршрут на основе имени класса, которое было передано событию: из: частичного .
Что я сделал, так это создал, каким должен быть настоящий URL. «Текст» его верен, но, похоже, не распознает его как именованный маршрут.
<!-- provide a link to skip this item -->
<% url = "skip_contact_#{event.class.name.tableize.singularize}_url" %>
<%= link_to_remote "Skip #{url} Remote",
:url => send("#{url}(contact_event, event)")
:update => "update-area-#{contact_event.id}-#{event.id}" %>
<span id='update-area-<%="#{contact_event.id}-#{event.id}"%>'> </span>
Результат выше: когда событие было передано экземпляру электронной почты, например, оно говорит:
skip_contact_email_url не метод.
URL-адрес правильный, но он не распознается как метод.
Как я могу динамически определить skip_contact_email_url как skip_contact_letter_url, если локальной переменной является буква?
Еще лучше, как я могу иметь один именованный маршрут, который будет выполнять соответствующее действие?