好吧,我有一个很简单的问题,我无法解决。
在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)

09-28 08:38