2012-02-19 48 views
6

我有一个在路由中使用SHA令牌的非资源性路由。这是我的routes.rb文件:什么是非资源性路由的link_to路径?

match 'permissions/confirm/:token' => 'permissions#confirm' 

我可以访问产生的路线,但我不知道在什么以通为的link_to助手。

下面是我用什么样的的link_to,这是行不通的:

<%= link_to "Give permission", confirm_permission_path(:token => @permission.token) %> 

的思考?

回答

11

添加:as关键是你的路线一样match 'permissions/confirm/:token' => 'permissions#confirm', :as => :confirm_permissions

然后<%= link_to "Give permission", confirm_permissions_path(:token => @permission.token) %>

+0

这似乎是有道理的,当我看'耙路线'时它看起来不错,但我仍然得到一个未定义的方法错误:'未定义的方法confirm_permission_path'。 – Scott 2012-02-19 04:40:46

+0

是否它应该是'confirm_permissions_path',复数。 – 2012-02-19 04:49:56

+0

是的,这似乎是问题。谢谢! – Scott 2012-02-19 04:52:27

3

您始终可以使用rake routes来确定路径的名称。我始终仔细检查该rake任务的输出,以确保我使用的是正确的宁静或非宁静的路线。

+0

'耙routes'表明路径是'/许可/确认/:令牌(:格式)'。但我不确定link_to helper应该看起来像那条路线。 – Scott 2012-02-19 04:32:26

+4

当你运行'rake routes'时,有3列数据。第一列是link_to路径,例如:'users_path'。第二列是格式(例如'/ users/index(。:format)'。最后,第三列是动作和控制器(例如'{:controller => etc ...}'。第一列,你会看到你需要的数据 – MrDanA 2012-02-19 04:53:50