如何在rails中传递link_to_remote动态URL?

时间:2010-09-10 03:58:28

标签: ruby-on-rails

我正在使用link_to_remote并希望传递以下内容:

<%= link_to_remote "Skip Remote",
          :url => url ,
          :update => "update-area-#{contact.id}-#{next_todo.id}" %>

如果网址的示例是:

skip_contact_email_url(contact, email)

其中contact是模型的对象Contact和Email是模型Email的对象。

但有时网址是skip_contact_letter_url,skip_contact_call_url,等等

以下是我尝试这样做的方法,但它不起作用:

<% next_todo = contact.next_todo %>
<% url = "skip_contact_#{next_todo.class.name.tableize.singularize}_url" %>
<% url = url + "(#{contact}, #{next_todo})" %>

它正确地执行了url的第一部分(例如skip_contact_email_url),但未传递该对象。它实际上看起来像是网址中的一个对象。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您需要评估您的方法生成。

<% next_todo = contact.next_todo %>
<% url = "skip_contact_#{next_todo.class.name.tableize.singularize}_url" %>
<% url = send(url, contact, next_todo) %>