2
我有以下部分。這可以從三個不同的時間在視圖中被稱爲如下:我該如何動態調用rails中的partial:命名的路由?
<%= 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} %>
在每一種情況下,打電話,發電子郵件,信件請參考Model Call,Email或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不是方法。
該網址是正確的,但它不承認作爲一種方法。
如何動態定義skip_contact_email_url是skip_contact_letter_url如果局部變量是信?
更好的是,我怎麼能有一個命名的路線,將做適當的行動?
我可以動態地分配事件中的值嗎?這就是我想要做的事情。 – Angela 2010-05-29 15:58:18
事件的值是通過:locals散列 – Angela 2010-05-29 15:58:39
是的,您將任何ActiveRecord對象分配爲':event',然後使用它。請參閱編輯。 – Voyta 2010-05-29 17:40:49