1

我有一个类层次结构(简化)如下。

Activity
SubactivityA < Activity
SubactivityB < Activity

其中activity是 的实例Activity,subactivityA是 的实例SubactivityA,subactivityB是 的实例SubactivityB

我可以使用这些link_to调用:

=link_to 'Name', edit_activity_path(activity) 
=link_to 'Name', edit_subactivitya_path(subactivityA) 
=link_to 'Name', edit_subactivityb_path(SubactivityB)

当我遍历活动列表时,这需要我知道子类并指定相关路径。有没有办法自动调用正确的路径,像这样(不起作用)并让它适用于所有子类?

=link_to 'Name', edit_activity_path(activity) 

谢谢!

4

1 回答 1

1

您可以使用 ActiveRecord 的变得来实现您想要的 URL。这对于您希望子类显示为超类的单表继承结构非常有用。

这是一个例子:

<% @activities.each do |activity| %>
  <%= link_to 'Name', edit_activity_path(activity.becomes(Activity)) %>
<% end %>
于 2013-09-07T02:52:16.720 回答