将helper url作为未编码的link_to url传递给:

时间:2017-09-10 20:07:49

标签: ruby-on-rails ruby-on-rails-5

我正在尝试使用我的一个帮助路径创建一个链接,如下所示:

<%= link_to url: admin_url(group) do %><i class="fa fa-eye"></i><% end %>

但是当rails渲染页面时,元素看起来像是:

<a href="/admin?url=%2Fadmin%2F1%2Fedit"><i class="fa fa-pencil"></i></a>

如何正确链接到admin_url(group)

1 个答案:

答案 0 :(得分:1)

<%= link_to admin_url(group) do %><i class="fa fa-eye"></i><% end %>

只有在使用polymorphic routing而不是路径助手或文字路径时才传递哈希作为第一个参数:

link_to(action: 'foo', controller: 'bar') do
  # name
end
  

缺少路线密钥可以从当前请求的参数中填写(例如:controller,:action,:id以及放置在路径中的任何其他参数)

这给了我们/admin

然后

url_for会将url等非保留选项添加到查询字符串中,这就是/admin?url=%2Fadmin%2F1%2Fedit"的原因。