好吧,我有一个很简单的问题,我无法解决。
在rails 3应用程序中,我有一个通过以下ruby代码向用户显示的链接:-
<%= link_to linkbunch_url(@link.link), linkbunch_url(@link.link) %>
这将打印如下url:-
http://localhost:3000/linkbunches/7yae8t
现在我不希望这个“linkbunches”成为我的url的一部分因此,我更改了routes.rb文件,并定义了如下路径:-
match "/:id" => "linkbunches#show"
因此,当我将url从
http://localhost:3000/linkbunches/7yae8t
更改为http://localhost:3000/7yae8t
时,它会将我带到同一个页面没问题。但我不知道如何真正地更改ruby代码,这样它就不会打印控制器名称我试过用
root_url(@link.link)
但没用… 最佳答案
您可以使用:as
选项显式地命名路由。
match "/:id" => "linkbunches#show", as: :linkbunch
注意你原来的路线是如何无名的
➜ ~ ✗ rake routes | grep bunch
/:id(.:format) linkbunches#show
一旦你按我上面所说的命名了它
➜ ~ ✗ rake routes | grep bunch
linkbunch /:id(.:format) linkbunches#show
这将允许您在视图中继续使用
linkbunch_url(@link.link)
。