动态路由的辅助函数

时间:2013-10-17 01:10:48

标签: ruby-on-rails ruby-on-rails-4

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

<% 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)

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

谢谢!

1 个答案:

答案 0 :(得分:0)

只需使用[:edit, @contact]代替显式方法名称。

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

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

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

VS

 = link_to "Edit", [:edit, @user, @post, @comment]