【发布时间】:2010-05-29 07:34:52
【问题描述】:
我有以下部分。它可以在视图中从三个不同的时间调用,如下所示:
<%= 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} %>
在每种情况下,电话、电子邮件、信件均指模范电话、电子邮件或信件的特定实例。
这是我尝试做的,从概念上讲我想做的事情:根据已从 :partial 传递给 :event 的类名分配路由。
我所做的是创建实际的 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?
更好的是,我怎样才能拥有一个可以执行适当操作的命名路由?
【问题讨论】:
标签: ruby-on-rails dynamic routes