2010-09-10 38 views
0

我使用link_to_remote,並希望通過如下:如何傳遞給link_to_remote動態url在rails中?

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

其中URL的一個例子是:

skip_contact_email_url(contact, email) 

,其中接觸是模型的聯繫人和電子郵件的對象是模型中的對象電子郵件。

但有時URL是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)但不傳遞該對象。它實際上看起來像一個URL中的對象。

我該怎麼辦?

回答

1

您需要評估您的方法代。

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

啊,就是這樣我試圖url.send(聯繫,next_todo),但這可能是正確的方式,謝謝! – Angela 2010-09-10 22:08:32

+0

是的,這不是壞的方式,因爲url是一個字符串。你需要調用這個字符串的這個方法。 – shingara 2010-09-11 08:49:37

相關問題