0

有人可以帮我创建一个辅助函数以动态获取控制器操作路径和名称。

<% if action_name.eql? "show" %>
  <li><%= link_to '<i class="icon-fixed-width icon-pencil"></i> Edit'.html_safe, edit_contact_path(@contact) %></li>
  <li><%= link_to '<i class="icon-fixed-width icon-trash"></i> Delete'.html_safe, @contact, method: :delete, data: { confirm: 'Are you sure?' } %></li>
<% end %>

本质上,我想为这段代码创建一个助手:

edit_contact_path(@contact)

我希望能够为“联系人”插入任何控制器名称,以便我可以在整个站点中动态使用上面的较大代码段。

谢谢!

4

1 回答 1

0

只需使用[:edit, @contact]而不是显式方法名称。

<li><%= link_to '.... Edit', [:edit, @contact] %></li>

@contact用您希望的任何变量替换。我发现数组语法更具可读性,并且在任何地方都喜欢它。相比:

 = link_to "Edit", edit_user_post_comment_path(@user, @post, @comment)

对比

 = link_to "Edit", [:edit, @user, @post, @comment]
于 2013-10-17T04:34:01.897 回答